Lately, I’ve been getting annoyed with myself for constantly nagging. It’s encouraging to see that Xojo is dedicating more time to Windows and has plans in place again, among other things. However, when you examine it objectively, it’s evident that the cross-platform concept is becoming increasingly diluted.
Xojo has always promised to compile your code for all platforms. Of course, it’s not entirely Xojo’s fault that this is becoming increasingly complex, but soon there may not be much left of the original promise. We saw with Web2 how many users were surprised to find that if they wanted to go beyond the standard offerings, they had to learn CSS and JavaScript on their own. Despite all the enthusiasm around XAML, this scenario will likely be no different.
Considering that the Xojo IDE is beginning to show its age, runs slowly, and lacks modern features such as git, CodePilot, refactoring, and more, there seem to be no advantages in that regard either. Furthermore, the presence of UI features like XAML does not alter the fact that hundreds of bugs in the actual language remain unresolved.
I believe Xojo is on the verge of acknowledging the truth: while cross-platform compatibility remains the stated objective, it increasingly deviates from the original concept and views it as a temporary necessity at best. This situation benefits plugin developers, who can seize opportunities to create even more plugins that aim to simplify or maintain cohesion.
Xojo may need to entirely revise its strategy, focusing on a tool that generates only boilerplate code for all platforms. They have already begun adopting this approach to some degree with Xojo Android. However, the effectiveness of this strategy remains debatable. While it might seem like a good idea on paper, it appears nearly impossible to implement given the current staffing levels.
In addition, Xojo faces significant competition from AI. Although these tools do not generate flawless code (and that is unlikely to change anytime soon, but possibly faster than many can envision), obtaining assistance and gathering ideas for designing algorithms in a new language has become considerably easier.
Lastly, it is essential to consider today’s overall effort required for cross-platform development, including signing, design, installers, and the fact that each platform adheres to different design principles. A valid question arises: should you tackle this as a solo developer or a small company wanting to handle everything in-house, or should you specialize in just one platform?
Alternatively, you could use a tool specifically designed for this purpose. Naturally, compromises must be made, but with Java, you have an approach that, even in 2023, still delivers on the promises Xojo made two decades ago but can no longer uphold.
You can choose to use web frameworks for the front end and accept the limitations that come with them. Alternatively, you could opt for Rust or Go and deal with the compromises of their rudimentary user interfaces. With these options, you gain a modern and relatively bug-free programming language as a foundation.
However, if you wish to fully realize the original promise of Xojo in 2023, Java is likely the best choice at the moment. Not everyone will share my opinion, but the idea of another “Man in the Middle (XAML)” just seems like the next bug slingshot to me. In any case, the original idea of Xojo is channelled again and that’s a shame, but unfortunately unavoidable.