# Xojo \> Buoy Shim

**URL:** <https://ifnotnil.com/t/xojo-buoy-shim/4869>\
**Category:** Buoy\
**Created:** [4 October 2026 17:04 UTC](https://ifnotnil.com/t/xojo-buoy-shim/4869 "2026-10-04T17:04:27Z")\
**Posts on this page:** 8\
**Page:** 1

<div class="post-metadata">

**Author:** ![Stretch327](https://ifnotnil.com/user_avatar/ifnotnil.com/stretch327/32/5162_2.png) [@Stretch327](https://ifnotnil.com/u/Stretch327)\
**Post date:** [4 October 2026 17:04 UTC](https://ifnotnil.com/t/xojo-buoy-shim/4869/1 "2026-10-04T17:04:28Z")

</div>

I’ve started working on the Xojo Shim for Buoy. This is going to ship as a package that gets imported to the Buoy source file(s) to expose Xojo-syntax wherever possible†.

I do have some questions for this community though:

- Workers – Right now, workers become preemptive threads under the hood. To support the whole separate building, running and bundling of Workers would require infrastructure that we have no use for in Buoy at the moment. If they still work the same and they’re debuggable (because VSCode seems perfectly capable of handling that), do you think this is a problem that needs to be solved?
- MySQL/MSSQL/ODBC – Buoy currently does not have any support for these, mostly because I don’t have an immediate use-case. None of these are currently on the roadmap, and they could certainly be handled by a 3rd party if necessary.
  - MySQL - At best this would be a MariaDB plugin. The unpredictability of Oracle’s licensing for MySQL makes it a non-starter.

- Web/iOS/Android – At this very moment, I have no interest in pursuing these, but if I did,
  - iOS _might_ be able to be compatible with Xojo
  - Web almost certainly would not
  - Android, definitely would not.

I would like some discussion and if necessary, please ask questions.

† _Wherever possible because there **is** some overlap in the API and I have run into some issues that probably won’t work the same_

---

<div class="post-metadata">

**Author:** ![npalardy](https://ifnotnil.com/user_avatar/ifnotnil.com/npalardy/32/10_2.png) [@npalardy](https://ifnotnil.com/u/npalardy)\
**Post date:** [5 October 2026 01:49 UTC](https://ifnotnil.com/t/xojo-buoy-shim/4869/2 "2026-10-05T01:49:01Z")

</div>

> [@Stretch327](#):
>
> - Workers – Right now, workers become preemptive threads under the hood.

Perfect  
Xojos were something of a hack

> [@Stretch327](#):
>
> - MySQL/MSSQL/ODBC

Nice to have but not a V1 MUST have  
And TBH Its possible someone in the community might build these since that’s imminently doable

> [@Stretch327](#):
>
> Web/iOS/Android – At this very moment, I have no interest in pursuing these, but if I did,
> 
> - iOS _might_ be able to be compatible with Xojo
> - Web almost certainly would not
> - Android, definitely would not.

Nice to have but not MUST have for MVP  
IF I had to pick ordering probably something web first then iOS / android  
Western it remained kind of Xojo like really depends on whether the web architecture would be similar or not  
There’s no requirement that it be

---

<div class="post-metadata">

**Author:** ![Ventus](https://ifnotnil.com/letter_avatar_proxy/v4/letter/v/f17d59/32.png) [@Ventus](https://ifnotnil.com/u/Ventus)\
**Post date:** [5 October 2026 09:36 UTC](https://ifnotnil.com/t/xojo-buoy-shim/4869/3 "2026-10-05T09:36:26Z")

</div>

It goes without saying that what I’m writing is for my **own needs**. I’ve a project which is currently under discussion with specific requirements regarding the database and web components.

- Workers: No particular opinion, although this approach works for me.
- MySQL/MSSQL/ODBC: I’d prefer PostgreSQL. The license seems clearer and I don’t see what is the benefit of MariaDB compare to PostgreSQL.
- Web : I’d need something that lets me mimics a desktop application running in a browser without writing HTML and/or CSS. Qooxdoo allows for that and seems to be a good candidate even if its reputation isn’t widespread as other framework.
- iOS: iOS could be interesting, provided it goes much more further than Xojo
- Android: No need in the short, medium or long term. In short I’m not interested by that.

---

<div class="post-metadata">

**Author:** ![Stretch327](https://ifnotnil.com/user_avatar/ifnotnil.com/stretch327/32/5162_2.png) [@Stretch327](https://ifnotnil.com/u/Stretch327)\
**Post date:** [5 October 2026 11:28 UTC](https://ifnotnil.com/t/xojo-buoy-shim/4869/4 "2026-10-05T11:28:55Z")

</div>

SQLite and Postgres are already there.

As for web, having worked on two frameworks at Xojo, it’s clear to me that whatever is done would need to support responsive layouts. Brock Nash tried to convince us of this way back then, but I just didn’t have a way to do it within the scope of web 2. With a layout editor that’s made with CSS now… who knows.

iOS and Android. This one’s tricky. Seeing what happened with Xojo gives me great pause. Specifically the fact that Apple and Google are evolving _so fast_ in that space. Keeping up with that could be a full-time development job for one person and even more if you wanted to be able to offer _everything_ Apple does every summer as soon as it comes out in the fall. Not saying “never” but Buoy has a long way to go to get there.

I am curious about what you mean by “much further” though.

---

<div class="post-metadata">

**Author:** ![Rick.A](https://ifnotnil.com/user_avatar/ifnotnil.com/rick.a/32/217_2.png) [@Rick.A](https://ifnotnil.com/u/Rick.A)\
**Post date:** [5 October 2026 16:51 UTC](https://ifnotnil.com/t/xojo-buoy-shim/4869/5 "2026-10-05T16:51:05Z")

</div>

> [@Stretch327](#):
>
> - MySQL - At best this would be a MariaDB plugin.

That’s the best of the worlds. MariaDB client protocol is completely compatible with MySQL. That means that MariaDB can add new features that MySQL may not handle, but whatever MySQL does, the MariaDB is able to execute and return contents as if it were a native MySQL client.

> [@Ventus](#):
>
> - I don’t see what is the benefit of MariaDB/MySQL compared to PostgreSQL.

For your own design, none; but dealing with legacy… A must have.  
Having a MySQL client is a MUST due to the POPULARITY of this DB on the web. It comes preinstalled in many turn-key solutions.

I also prefer PostgreSQL but I HAVE TO support systems that runs on MySQL, ONLY; most people dealing with web projects will find such things here and there.

At some point, Greg will get some request from his users.

---

<div class="post-metadata">

**Author:** ![Ventus](https://ifnotnil.com/letter_avatar_proxy/v4/letter/v/f17d59/32.png) [@Ventus](https://ifnotnil.com/u/Ventus)\
**Post date:** [6 October 2026 15:15 UTC](https://ifnotnil.com/t/xojo-buoy-shim/4869/6 "2026-10-06T15:15:45Z")

</div>

It’s been a long time since I last used Xojo. I think it was version 2025r2.1. It’s possible that some interesting features have been added since then. What I’d need is support for USB and BLE, as well as MapKit and SceneKit. I’m not sure about BLE and USB, but for the rest, I think there are plugins available that I don’t want to buy. In any case, I don’t want to use Xojo anymore.

---

<div class="post-metadata">

**Author:** ![Torsten\_B](https://ifnotnil.com/letter_avatar_proxy/v4/letter/t/ecae2f/32.png) [@Torsten\_B](https://ifnotnil.com/u/Torsten_B)\
**Post date:** [7 October 2026 12:36 UTC](https://ifnotnil.com/t/xojo-buoy-shim/4869/7 "2026-10-07T12:36:58Z")

</div>

🙂 Try Objo or Buoy

---

<div class="post-metadata">

**Author:** ![Stretch327](https://ifnotnil.com/user_avatar/ifnotnil.com/stretch327/32/5162_2.png) [@Stretch327](https://ifnotnil.com/u/Stretch327)\
**Post date:** [9 October 2026 19:17 UTC](https://ifnotnil.com/t/xojo-buoy-shim/4869/8 "2026-10-09T19:17:48Z")

</div>

Good things are coming to **Buoy** because of this Xojo converter work…

- Fixing a regression which caused string comparisons to be case-sensitive in places where it shouldn’t.
- Window definition is getting easier
  - Control event handlers have been moved back into the code blocks _and_ no longer require the magic `Handle < control >_< event >` naming to work. Soon you’ll be able to define them in a `With` block:

```auto
 Class MyWindow Inherits MyWindowLayout
   With SaveButton
     Handle Action()
       ParentWindow.Close
     End Handle
   End With
 End Class

```

  - We’re also adding this pattern for use with controls on TabPanels and PagePanels:

```auto
Window SettingsLayout
  Title = "Settings"
  Frame = (200, 200, 440, 380)

  Control TabView tabs
     Frame = (10, 10, 420, 300)

     Tab "General"
         Control Label nameLabel
             Text = "Name"
             Frame = (10, 10, 100, 24)
         End Control
         Control TextField nameField
             Frame = (120, 10, 200, 24)
         End Control
     End Tab

     Tab "Advanced"
         Control Checkbox verbose
             Caption = "Verbose"
             Frame = (10, 10, 200, 24)
         End Control
     End Tab
 End Control

 Control PagePanel wizard
     Frame = (10, 320, 420, 50)

     Page
         Control Button nextButton
             Caption = "Next"
             Frame = (10, 10, 100, 24)
         End Control
     End Page

     Page
     End Page
 End Control
End Window

```

The Xojo shim and converter are coming along, as you can imagine they are highly intertwined, and revealing a lot of idiosyncrasies about Xojo that I haven’t thought about in a long time. I’m running the full test suite on the Buoy source today, encompassing the language feature changes from above along with lots of bug fixes.
