Quite often prospective clients, and developers thinking of learning Xojo, ask my opinion of Xojo. They are about to embark on a journey spending tens of thousands of dollars on a cross-platform tool and they want to know if Xojo is a right for them. It’s a good question and I’ll share some of what I share with them in no particular order.
Xojo is pronounced “Zo Jo”. I can’t tell you how many times I’ve heard it pronounced “Ex Oh Jay Oh” or something else. They just don’t know and I think it spooks a lot of people as it doesn’t exactly roll off the tongue. Xojo has been around under various names (REALbasic and Real Studio) for twenty years – all with the same company. At that point it’s easy to name a dozen languages/development environments that were popular twenty years ago that either don’t exist today or been sold so many times that they’re now obscure tools.
This isn’t your fathers BASIC. Xojo uses the BASIC syntax but this isn’t like the venerable Visual Basic or even older GWBasic or QBasic. Xojo apps are NOT interpreted at runtime – they compile down into native code for each of the platforms. The language itself is a modern object-oriented language that happens to use the BASIC syntax. Xojo is updated three to four times a year and has undergone a lot of upgrades in the past two decades. It first supported 68000 code, then PowerPC and Fat applications, Carbon, and now finally Cocoa on the Mac side. They’ve added Windows, Linux, Raspberry Pi (Linux ARM), desktop and console application targets. In the mobile space they’ve added iOS, and by the end of the year Android. They’re also in the middle of the transition from 32-bit only applications to 64-bit applications. For the most part things ‘just work’ and developers don’t experience too many issues (bugs happen but think about how many targets they’re supporting!).
Xojo applications are self-contained. Take a compiled Xojo application and (with very few exceptions) literally copy the files to another computer and the application will just work. Even Windows applications don’t need an official installer, however, it is recommended since most Windows users are comfortable and familiar with using them. Most Mac applications are installed via drag-and-drop from a disk image but an installer can be used on the Mac as well. This ease-of-installation is huge and it’s rare to have “DLL Hell” issue since all required libraries and resources are bundled together. This does make the resulting output larger than some other development tools that depend on system libraries but I’ve rarely seen this an issue.
Xojo provides nearly everything you need in one tool (with some caveats). The Xojo IDE has Code, Form, Menubar, Database, and Report editors (to name some of the big ones) in one tool so you never have to use another tool. We’ve found the database editor to not be powerful enough so we prefer external database editors. The built-in reporting tool also isn’t very powerful so we created our own reporting tool (Shorts) which has served us well in our consulting projects. The nice thing is that all of the built-in tools work seamlessly with each other so the tools that are powerful enough for you ‘just work’ with few hassles. The editors try really hard to protect your from hurting yourself while other tools are just a big text file that must be in an exact format.
The Xojo community is incredibly helpful. The Xojo Forums are filled with some of the most helpful people I’ve ever met. Some of the Xojo engineers respond to questions, but usually the community answers before they get to it. Many other support forums are rude and condescending to newcomers to their language/tool. The Xojo forum has even been known to answer questions about other tools.
Xojo is a cross-platform tool and because of this it has some compromises. Controls are often the lowest- common denominator. Grids especially aren’t as powerful as some are used to in the Windows world. This is mainly because complex grids are not common in Linux and Mac environments. Other controls have similar issues. Things like automatic spell checking in TextArea’s are platform specific as on the Mac. At times it is disappointing that there aren’t more control options for Xojo right out of the box (think date and calendar controls) but thankfully there is a third-party market for controls and libraries for Xojo that can often help. Even though much is provided for you, it’s possible for a developer to use OS API’s using Declares that can significantly modify the appearance and functionality for some applications.
Xojo is a Rapid Application Development (RAD) environment. Between the all-in-one IDE and the language creating applications in Xojo is fast. This means that an initial investment can get your app developed faster and cheaper than many other languages. Obviously some of this depends on the developers doing the work but it can make a huge difference. We’ve always told clients that if they’re not happy with Xojo performance after the initial release they can use our code as the proof of concept to the developer in whatever language they choose. There have only been a handful of clients that have ever switched languages after release and that’s usually been switching from desktop apps to web app.
The cost of Xojo isn’t very high compared to some tools. For $699 per year per developer you can create web, console, and desktop apps for Mac, Windows, Linux, and Linux ARM plus iOS apps. That’s all in the same environment and same language and with the exception of iOS applications (which requires a Mac) you can use Mac, Windows, or Linux to create everything. Many developers use third party controls and libraries and even those are relatively inexpensive. Plus, there are no royalty fees for your Xojo made applications. All-in-All it can be a relatively inexpensive tool.
What considerations have I missed?