Should Xojo switch to Declarative UI?
From time to time, I still take a look at the Xojo universe, even if it meanwhile requires a magnifying glass. However, it's hard to let go of nearly 20 years of using a tool, especially since the community is comprised of many talented, motivated, and inspiring developers.
Many are increasingly frustrated and find themselves in the same situation I experienced 2-3 years ago, while others have felt this way for even longer. A lot of devs have left Xojo or are currently in the process of leaving. A few hope that Xojo will finally turn things around, even though they know that the CEO doesn't even begin to acknowledge any problems. This thread can be understood in that context:
Even though the above proposel of a declarative UI development in Xojo is interesting and the trend of other development tools speaks for it, I wonder whether this could seriously be a solution for Xojo. I think the exact opposite is true.
I'm a big fan of declarative UIs, primarily because I mainly develop for the web, and it's essential for responsive designs. In web development, most IDEs and programming languages offer "live/hot reload" so that you can see changes in the code immediately.
Furthermore, nothing in web design is truly static (compared to pure desktop development). On one hand, you don't know the screen size of the end user or the device being used. As a result, you must design your interfaces to display sensibly on various devices. In this regard, for example, a static layout manager like the one in Xojo, which is also used for Xojo Web, is actually quite impractical.
Is that reason enough to abandon layout managers?
I'm skeptical because tools like SceneBuilder for JavaFX, JFormDesigner for (Swing/JavaFx), PineGrow for anything with HTML, Wordpress, etc. are still very popular. Professional developers don't like to admit it, but many are happy to be able to quickly and easily click together a UI. The truth is that some people lack the understanding, patience or willingness to learn to familiarize themselves with declarative UIs.
Let’s face it: creating beautiful and, above all, useful UIs is actually a full-time job. It is a separate discipline, time-consuming and often not easy to understand, especially for beginners in development. A layout manager can achieve quick results with comparatively reduced effort.
FlutterFlow
Let's just take FlutterFlow as an example (). Personally, I think the tool is overrated, relatively expensive, and above all, in my opinion, it creates terrible code that, even in the paid version (depending on the tier you choose, you can download the code), simply generates terrible code that is almost impossible to maintain.
The truth is that the tool is quite popular, and many developers create attractive and functional applications, adding code where necessary. These developers are often backend or desktop developers who need a mobile version quickly, or hobbyists who lack the desire, time, motivation, or expertise to learn Flutter's concepts.
What does this mean for Xojo?
Since Xojo no longer focuses on professional developers, I believe their layout manager (though still not perfect) is actually THE core feature. I'm fairly certain that a large portion of the remaining developers would revolt if they suddenly had to build their UIs declaratively.
It might be a smart move if Xojo (the company) concentrated on automating more. This would involve not only offering a tool for cross-platform UIs but also generating code snippets and functionalities. For example, I'll mention Flutterflow, which enables easy API integration using drag and drop, or even generates a database with database models at the push of a button.
Of course, this implies a complete paradigm shift and would transform Xojo from a pure programming language to a "convenience" tool. However, it could potentially attract more customers and add value for smaller apps (at least for hobbyists).
Personally, I'm concerned that this opportunity has already passed, as basic features are currently lacking (such as Git, an extensive history for the layout manager, AI-based approaches, and the management's willingness to not just talk about low code, but also to implement it).
Conclusion
For me, "declarative UIs" would be just another "abstraction layer" in Xojo. In my opinion, Xojo should take the exact opposite approach.
One of the main issues I see is that Xojo is still trying to be a jack of all trades.
This train has been running for over 7 years. Perhaps there's still a chance to use their current assets to create the most appealing platform for beginners, enabling them to create functional apps for a wide variety of platforms using "visual tools."
The ability to enhance more complex scenarios with your own code snippets wouldn't be a necessity, but merely an add-on.
If the company simultaneously focuses on not trying to implement all possible features from the start, such a concept could potentially be successful. They could keep existing customers satisfied (or less frustrated) by "freezing" the current tool and only (or finally) patching it.
Of course, this would be a complete change of strategy, but it's likely better than the current "strategy" that assumes you can survive with just a handful of developers for all mobile platforms, desktop, and web.
So far so good, enough time invested in an increasingly meaningless platform that doesn't seem to even begin to see the need for change. The main problem may actually be that something needs to change. Either the Inc. focus more on a pure development tool, in which case the possibility of declarative UIs would be right and overdue, or the team concentrates on what they can do best (or used to be good at).
Subscribe to my newsletter
Read articles from Jeannot Muller directly inside your inbox. Subscribe to the newsletter, and don't miss out.
Written by
Jeannot Muller
Jeannot Muller
Founder and Managing Director at TECcompanion GmbH