Xojo Alternatives for Cross-Platform Development

So maybe Xojo has a good niche for developing a quick MVP or prototype to assess the viability of an idea?

And maybe Xojo is helpful for quick/dirty utilities or on-the-fly reporting apps that may or may not be useful long-term?

I can see myself building 10 Xojo apps like that - 5 will turn out to not be useful ideas, 3 will be simple and work just fine as is, and for the remaining 1-2 I may well hire a pro to build me something more sutstainable in the long-term, using the design of my “amateur” app as the initial design to improve upon.

That’s a whole lot cheaper than hiring a pro to build 10 apps for me. It also can get me up to speed on analyzing my needs and getting MVP internal tools in place a whole lot faster than if I did everything as a polished app.

So maybe there is a method to the madness with Xojo. And a reason for all of these options to survive in the marketplace.

That said- I can understand that it may be hard for a professional coder to build a “quick/dirty” MVP app and put his name on it. You may only want to put your name on something that’s done to the best of your ability; indeed I face the same dilemma in my own professional business where my workproduct has nothing to do with coding.

But in the end - as long as the client understands what he is getting for what he pays, what’s wrong with giving the client all the options?

1 Like

FWIW, my bad taste about Java is because the UI was just horrible, with a fake menu bar in the window (the Mac menu bar being almost empty and unused), fake navigation dialogs and so on… Just for the sake of marketing as “multi-platform”. If UI and respecting the OS rules isn’t important, rather make a website.

2 Likes

There are still some experienced users using Xojo, though.

1 Like

It would be but it is not. The difference between Java and Xojo is not only the ecosystem. It is the reliability of the language, the clean coding structure, the support, the size of the Development team, the development structure, the release system, the release cycle, the long term support System, the stability, the concistency of it’s API, the technology stack itself, the functionality, the broad community and so much more. May be you believe in Xojo. It is okay. Until you hit the borders. At that moment you leave your ability of building solutions. And yes, for many problems you can buy addond / plugins / whatever from Christian and others. But at the end: it solves not every problem you may have.

The next Part is: running on a virtual machine in case of Java is much faster than Xojo will ever be. Even after the speed boost in 2024 there is not the performance you have with Java. So you build slower Software. What ever you do.

The GUI System of Xojo is a good Idea but for X-Platform it brings also some problems. While using only native elements / components Xojo is functional reduced to the functionality all of the components in the OS have. That is nice when and if there is no need for anything else. Otherwise you need to build native GUI Software.

Looking on Java the problem is nearly the same. The GUI Components having their functionality on all platforms (Windows, Linux, MacOS, UNIX). On the other side it is so that it runs also on RiscV Systems and all known platforms. Even on RTOS I implemented with the known RTOS VM’s with success.

Writing GUI programs means: if you are still inside the conventions (FileSystem use like all times, is in Xojo the same) it works on Mac, Windows, Linux on all platforms. A jar File can be started without any modification on all platforms and it runs. Like I said: take care of FileSystem use and take care of direct Hardware adressings.

Writing mobile applications is easier. Why? While you can write Software with CodenameOne for IOS and Android with ONE Sourcecode and ONE GUI. The result is a Program where ou can generate the IOS and Android Package and on top you get also a jar file which you can run on all platforms including the GUI. But - of course - only without stuffs like accelometer.

Writing Web Spplications in enterprise ready Style is also not that complex: Vaadin is the right Choice, if you are not using their special components you can use it open source.

And here is the border between Xojo and Java. All the Stuff I was telling here is for free. Open Cource. With no upfront costs. Always with a consistent API. All with a high reliability, code consistency and functionality.

And you can decide: do you want to write your Software with an exoensive tool, many bugs, no real consistency or with a language and n ecosystem behind which is in broad use? Your decision. For me it was and is simple.

I can work as quick as with xojo with java for desktop. Mostly more than that. So xojo isn’t faster. We can make a competition from it. There is nothing more quick with xojo

The “Free” part is interesting. That too depends on your experience level.

A very on-point analogy is purchasing commercial software vs. using “free” open-source software.

I have a considerably greater level of comfort with software/computing issues than most users but I am nowhere near qualified as a professional dev. [I worked as a dev in Turbo Pascal in college if that puts it into perspective.] That said, if I have a choice between commercial software vs “free” open-source software I will often choose the commercial software. I do that because inevitably I will find some conflcit with dependencies or runtime version or some other reason why the open-source software will not run. It’s not free if I need to take a half-day or more debugging it. Or if I need to hire a freelancer to install the “free” open source software for me.

That said - if the commercial software is particularly high priced I may go the open-source route. If I think I may need to customize the software in the future I may go the open-source route. But that’s done with the understanding the open-source does not equal free.

Its actually gotten a lot better

Some
A lot less than there were before they embarked on API 2 and renamed all the controls, events,etc

Many, like @samRowlands, came to the conclusion that IF you have to relearn everything why not relearn something more capable , less buggy, better supported, with a larger community etc

3 Likes

I purchased Xojo and some third-party plugins to cover some of Xojo’s shortcomings, subsequently the third-party developer pulled the plug on a plugin I had made wide use of.

I was already disgruntled by the downgrade from the RealStudio IDE to the Fisher-Price inspired Xojo IDE so that was the final straw for me.

1 Like

Reading that: it is not true at all. In all cases you need to: install JDK on your computer. Install IDE on your computer. If you choose Netbeans, Eclipse or IntelliJIdea community Edition: it is for free. Netbeans has build in Swing Designer. For IntelliJ you should think about JFormdesigner (30 Bucks a year). Eclipse has build in you need to install. Even if you have IntelliJ Ultimate: JFormdesigner is needed for ultimative GUI development for Java Swing.

That there is no commercial edition for much money: I can’t change. There is no commercial stress inside. When and if you want to develop with GluonMobile you may consider to buy it. If you want to use CodenameOne Buildservers you may consider to pay for it. If you want to use Vaadin commercial components you may consider to pay for it.

At the end: you can write the Software you want to write for free. You can buy commercial components. If you need this components. Mostly there is no need for them. Only if the purchase is needed, do it. All what you can do with Xojo you can do for free. Entirely for free. Download JDK, install it. Download Netbeans. Install it. Choose new Project, project with Ant and Java Project. You can now develop your Java Swing Application. I can’t even see your “commercial dependencies” problem. It is not there. If you develop with Delphi, C# and Xojo: you need them to write even working Software. If you develop with Java: no need. Java itself brings more than Xojo ever can do. No need even for any external component for Java Swing Software. You want Flatlaf UI? Okay, you want it, I know it even if you do not know it. There is a problem. There is no commercial component in it’s dependencies. It is free. For ever. That’s it.

You need Database Connectors? The connectors from Mysql AB and nearly all other Database System vendors are, you may get it by self: for free, there is no commercial version where you have to pay for. The entire ecosystem works like that. There is no pay big money for something. That starts when developing with JavaFX. You may consider to do that to have the same Software running on Desktop, all mobile Devices and in the Web. That is possible. Exactly the same Software, same UI and so on. You can do that with JavaFX. You need then: JDK, Netbeans or IntelliJ, Scenebuilder (JavaFX UI Drag and Drop Designer) which are all for free and GluonMobile (costs 500 per year) and a JPro Server for your Webserver. Speak with them for your commercial project. Use it for open Source. And yes, you can use it in development without paying one cent for it. And for charity projects without paying one cent. And for not commercial projects and…

The need of commercial components is really low. There is no need for commercial PDF components, Office automation, Databases…no need at all.

Speaking out all of this it is not so that there are any commercial components you can use to make your Swing Development less work for Debug or so on. I never have to debug while the system makes trouble. I have to debug while I made an error. I produced the bugs. There is no half day debug. I never had that. Only with Xojo while API is not working like expected and documented. That is different in Java environment.

It seems that Xojo’s current business direction is to force users to learn another language.

Here are a few examples:

  1. When high performance graphics are needed, use DirectX, OpenGL, or Vulkan. Xojo has the basics of graphics, and the quality is poor and outdated. This requires a new window and code written in wrappers by C++.
  2. Want to draw something simple with the canvas? Anything more than simple-slow graphics, you quickly get bit by being forced to only draw in the canvas area. Having an algorithm attempting to draw to the canvas outside of the canvas section quickly causes reminders from the IDE that you can’t do that
  3. Want to communicate with other computers? Xojo takes the two options which are little-endian and big-endian and throws in middle-endian (also called mixed-endian) into weird communication between computers. Run a program once, its little-endian. Run it again, its middle-endian.
  4. Programming on Linux is a mess. Graphics are odd-sized and buttons are cut-off. Create a wrapper in gcc for linux.
  5. Writing electronics on the Raspberry Pi is difficult in Xojo. Learn another language, such as Python and C/C++ and you can create a Xojo wrapper for the electronic functions and big-banging required.
  6. There are waaaay too many other examples…

The one great part about Xojo, isnt the programming language, and is the community - which has a population that seems to be getting lower. Individual creators are able to make work-arounds for Xojo. Positive influencers to my programming life and style have been people like Julian, Alain, and too many others to mention.

4 Likes

Thank you for that java getting started link!

I LOVE PHPStorm ide by IntelliJ, so I’d bet the java ide would be good.

1 Like

You are making my point

I don’t have to deal with any of that with Xojo - just download and start coding

I don’t have to worry what packages are updated. I don’t have to worry about how those updates broke some other “free” software. I don’t have to worry that my l laptop has a different version of a library I use only rarely.

I get it that there are tradeoffs. First and foremost I am not sure I would ever want to sell commercial software written in a proprietary language where the vendor could pull the rug out beneath me.

On the other hand, if I have my company data in monday.com and I need an internal tool to query its API and create a daily report for me then Xojo may be the most efficient way to do that project and have it done in 1-2 days.

1 Like

Stay with Xojo, you are the right candidate for them. You don’t have to worry with Java. Download JDK LTS 21 and Netbeans 21 and there is nothing to worry until 2030. I don’t know where you get your panic attacks from but I would rethink that. You have to worry that your code will run in two years with the then new version. I have not to worry about.

Java Software written before years you can compile today. And even better: you can even take care of it to run also in two decades. So stop to tell nonsens like that because it is: NONSENSE. You may think it is right but it is not. You can buy in your thinking Xojo or Delphi or C++ creator. And believe that IntelliJ, netbeans and Eclipse are bad IDE’s with tons of bugs and misleading libraries. It does not bother me.

With Xojo you have for example NO new library for Web. It was outdated before Web 2 came to the daylight. Years outdated. The Desktop…sorry, the worst performance I ever saw. Even Python is faster. And PHP. I had this discussions but…sorry it is like it is.

The consistency of Xojo is: zero. The renaming of their API stuffs is killing. And that is the best you can think about? Okay, that declares something.

This comes down to how well you know whatever tool / language you use for the task
If I knew C# as well as I know Xojo I’'m sure I could do it that quickly
If it were java I’m sure that could be turned out quickly as well
Python etc

What you wont often find is tools like Monday.com publishing specs for API’s along with examples in Xojo
In Python, js etc very likely
but Xojo ?
I’ve not encountered one

And THAT slows you down

I HAVE run into EXACTLY that with Xojo very recently in a client project
https://tracker.xojo.com/xojoinc/xojo/-/issues/76219
Simply opened an existing running project in the new version and it crashed all the time
And I required the new version since Apple required the new version of the iOS SDK to be used
And that is ONLY available in the latest version of Xojo

In order to get this submitted we had 2 choices

  1. completely revise it and all the code in the latest version of Xojo
  2. completely rewrite it in something else

for expediency we did #1
and ARE working on #2 long term since we want both an iOS and Android project from the same sources (something Xojo cannot do)

Silent breaking changes ARE an issue with Xojo

2 Likes

Like I said. And that will not find an end. The entire problem is the changing API and the leak of staffs. They can’t continue in this wise without hitting the borders of the small world they builded. Because their world is flat they wonder that there comes up a bord3er. While it is not the world but a diorama they formed by self. And inside of this everything is nice, good, working and so on. But not so in real world.

2 Likes

and the future looks bleak:

‘Xojo Update’ presentation

I don’t see that as a problem, http request works the same in any programming language. I use Python code samples all the time when learning new stuff.

Personally, I even go as far and say that Web as a platform is not really needed. Backend can be programmed in any programming language and frontend can be done with any existing Web tools and technologies. Why should one programming tool hande everything?

2 Likes

@thorstenstueker I have settled on using IntelliJ for my IDE and by default it installed JDK 22. Would you recommend downloading and switching it to JDK 21 instead?

Agree

Actually as a “citizen programmer” I would likely give the API communication a brief try in Xojo but if it were not straightforward I would handle that with a make.com scenario. make.com is superbly efficient, capable, and well-documenmted in that regard. I could connect that to Xojo simply by having Xojo issue a webhook and receive the webhook response.