With the recent news that the Freemium model failed to bring in the much hoped for additional revenue it’s worth taking a look at the short comings of the product and what can be done to attract not only more customers but, even more importantly, profitable customers.
Let’s be clear, this is not a hit piece against Xojo. We have four full-time Xojo consultants that spend a vast majority of our time developing Xojo desktop and web applications for clients all over the world. For all of its faults Xojo is a great tool that serves our customers well. Can it be better? Absolutely! So please take this article as what we feel would help us make it an easier sell to prospective clients and what makes our lives easier. I think these items might also attract those new, and profitable, customers.
The Xojo IDE itself has been the topic of more than a few of my blog posts. Frankly, I hate the Navigator and how it switches Editors on you. It steals the focus in odd ways and the back/forward history even after two years is still wonky. The Navigator shows too much information when I don’t want it and not enough when I do. Double clicking into objects makes sense but double clicking nearly anything else does not.
Many people complain about workflow issues and I can’t disagree. I know I’m less efficient with Xojo than I was with Real Studio (the old version). With Xojo I spend way more time mousing than I feel I should. And many of the really nice features of Real Studio are gone from Xojo – especially in the Layout Editor.
At the 2015 Xojo Developer Conference they acknowledged that the IDE is not as good as it could be. That’s an understatement for those of us spending all day long in the product but it’s a start. The sad thing is that the IDE is so tightly coupled with the language that they can only fix en mass rather than incrementally. This means we might have to wait a bit for these changes. We can only hope that whatever the new design is it’s a signifiant improvement.
I would also argue that Xojo’s insistence of having a UI to create method definitions, properties, events, and so on, are a detriment to adoption. I know of no other language that forces a developer to jump through the same hoops for declaring methods, properties, constants, etc. The Code Editor only allows a single method to be displayed at a time so at best it’s clunky and I see no advantage to this design. At that point many feel it’s more like a toy than a true development environment. Does it help newbies? I’m not convinced since plenty of newbies pick up other languages.
The people that can afford to spend a good chunk of money on upgrades and 3rd party tools are businesses. Xojo should scream business at every step of the process but yet it doesn’t. The Xojo website talks fast and easy but not ‘business’ and business is where the real money is.
The Xojo IDE has a built-in reporting tool. It’s weak and I know only a handful of developers that regularly use it. Most people abandon it and hit the 3rd party market (we sell a set of reporting classes for this very reason). The fact that Xojo itself doesn’t use their own reporting tool for any report (that I’m aware of) is a shame.
Many businesses need to create PDF documents. The main solution is a 3rd party plugin to simply create a PDF document. An even more expensive solution (same developer) exists to view them. Neither solution works with the built-in reporting tool.
Most businesses require some basic user input controls such as Word Processing, Date, Time, and Calendar. Xojo has none of those so any business owner will immediately have to hit the 3rd party market.
One item that has come up for years is the lack of a good grid control. I’m not talking about a listbox replacement but a true grid control that can show native controls in any cell. Now I understand that making it truly cross-platform is hard but you’d think a company that makes a cross platform development tool would be up to the task.
These are just for Desktop apps. Web apps have similar issues with an even bigger lack of standard controls out of the box. The Xojo WebListbox in particular is very weak. The WebSDK helps alleviate some of these issues but the 3rd party market hasn’t exploded with solutions. But again I would argue that Xojo should be providing basic no-frills controls without a customer having to hit the 3rd party market.
I’ve had several discussions in the past couple of weeks with developers migrating away from FoxPro and FileMaker. Xojo would be an excellent choice for them if not for some of the above reasons. Data binding seems to be an issue for some and Xojo deprecated it a number of years ago. I have no idea if it’s coming back. I can argue that I’ve never used a binding system that’s been great but for many business applications it’s a way to quickly get up and running. I personally think binding gives many developers a false sense of security but I also see how it can be used to quickly develop a complex UI.
Xojo database applications are also pretty dumb. There is nothing that Xojo does to help you when it comes to table and field names. At some point you have type in an SQL statement and you won’t know if you have an error until runtime. By that point it’s way too late and it’s frankly one of the reasons why we developed ActiveRecord to eliminate many of the silly and stupid mistakes that are common to programming database applications in Xojo.
The Database Editor that’s built-in to Xojo isn’t very useful. Yes, it can help create SQLite databases and attached to all of the supported database servers, but it’s features are very weak. To the best of my knowledge you still cannot create an integer primary key field that’s auto incrementing. No wonder why new people to Xojo are confused. In some ways I feel it would be better if Xojo removed the database editor entirely.
Why would any business owner choose Xojo over any other development platform with the issues I’ve just described? The fact is some choose don’t. After 64 bit applications and fixing the IDE workflow issues I strongly suggest a heavy focus on attracting business users. They are the ones that can afford the more expensive licenses and right now Xojo isn’t necessarily a tool that attracts them.
It sounds like I’m really pissed off at Xojo. No. I simply make my living with the product. If even just a few of these issues are addressed it makes my life, as a consultant, easier. Make Xojo a great tool for businesses and the non-professional developers will follow.
What makes Xojo a great development choice? It’s a RAD environment that is easy to learn. The language is easy for beginners to pick up and yet powerful enough for advanced developers to extend it. It creates very good cross platform desktop applications for Mac OS X, Windows, and Linux, web applications that be run on nearly any computer, console applications that run on any computer (soon including Raspberry Pi), and it even lets you create iPhone and iPad applications. Add in some better business features and what’s not to love? At that point Xojo screams business.
So what say you my fellow Xojo developers? Are these worthwhile goals or stupid ones? Did I miss anything?