Xojo turns twenty years old in 2016. That’s an extraordinary feat not only for a business but even more as a development tool. The simple fact is that 90% of all businesses in the United States fail within two years. There’s a significant number of the remaining businesses that fail two years after that. Xojo has beaten the odds from a business standpoint.
When it comes to software development tools and languages it seems that every time you turn around there is another programming language of the moment that is the hot, hot, HOT thing that everyone has to learn and then two years later it is relegated to old, has been, technology. Each one promises to make software development easier and faster and in most cases they solve A problem but not necessarily all problems. In reality, every development tool still requires a competent programmer to do some work – you get nothing for free.
Xojo has been renamed multiple times first as REALbasic and then as Real Studio but in each name iteration it’s been the same product: a rapid application development platform and language that creates compiled desktop, console, and web applications native for Mac OS X, Windows, and Linux. Not only in 32-bit but also for 64-bit. For a vast majority of users it really is as simple as checking a box captioned “Windows” to create a fully functioning Windows application that works the same as the one you’ve create on the Mac or in Linux.
Xojo started out twenty years ago as CrossBasic before Real Software Inc purchased the rights. It was modeled after the very successful Microsoft Visual Basic and those roots are still visible today. Xojo initially ran only on Macintosh but within a few years it ran on Windows. It now runs on Linux too.
Xojo has transitioned from 68k Macintosh desktop apps, to PowerPC apps, to Carbon apps, and finally to Cocoa apps. Recently they transitioned from 32-bit applications to 64-bit applications for Mac OS X, Windows, and Linux and introduced Linux ARM as a new target. This transition is still in progress (the IDE is still 32-bit and remote debugging isn’t available for 64-bit yet) and they’ve announce more transitions on the Windows side to start moving away from the venerable Win32 framework for some things.
Besides desktop apps Xojo also creates console and web apps. Web apps are a different beast as they expect to keep a constant connection between the browser and application on the server. This makes web apps work a lot like desktops apps and eliminates a host of typical web app issues. These web apps can be deployed as either cgi applications or as standalone apps. The cgi applications work with Apache or IIS servers. Standalone builds require no server and act as their own server which makes them very easy to deploy to any Mac OS X, Windows, and Linux machine. Much of the code used in a desktop app is reusable for web apps.
A few years ago Xojo introduced the ability to create iOS applications which introduced yet another target. iOS transitioned quickly from 32-bit to 64-bit after one of Apples famous ‘deprecations’. iOS built under Xojo works with the iOS Simulator that comes with Xcode to accomplish remote debugging. Just a few weeks ago Xojo announced that in late 2017 Android will become another target.
Xojo is an integrated development editor, or IDE, that allows a developer from within one application, to write all the code, layout all the user interface, and include any resources necessary for it to work. It has a series of built-in editors that mostly mean you’ll never have to leave the Xojo IDE. Working on desktop, web, console, or iOS projects expose the available libraries and controls for those targets.
Xojo lets you compile final executables or do remote debugging to any of the supported platforms. So while working on Mac OS X I can remote debug an application in Windows running on another machine on the same network or in a VM environment. While remote debugging, any exceptions that occur in code are revealed in the IDE and users can view variable values and see the call stack.
These things are nothing spectacular by themselves because many development tools can do them. What makes Xojo remarkable is that is does this regardless of what platform you develop on. A Windows developer, Mac OS X developer, and a Linux developer get the same capabilities and can deploy to any of the other platforms. The only exception is that to do iOS you must be using a Macintosh and have Xcode.
Like any tool it has its detractors but it’s managed to transition, quite quickly at times, due to sudden announcements from Apple (who thought they’d move away from PPC? Or iOS apps would be 64 bit that quickly?) and from the inevitable changes from Microsoft, and the sometimes daily changes in Linux distributions. Some users complain about the number of bugs introduced in new releases or that bugs sometimes go years without being fixed. It’s my opinion, though, that every developer complains about those things in their development tool of choice. Xojo averages a release every 90 days (with the occasional dot release) and always add some new features and fixes many bugs.
The Xojo community is incredibly welcoming to new people. There is not a lot of condescension given to new users that ask simple questions on the Xojo forums. Unlike some other venues there is not a lot of vitriol going on. The Xojo engineers frequent the forums and answer questions.
Since Xojo has lasted twenty years they’ve already beaten the odds. There is every indication that they’ll be around many more years. They are no Apple, Google, or Microsoft, but yet they keep churning out new versions that attempt to keep up with the ever changing development landscape with what many would consider a very lean development staff. Most of the development staff are former users so there is a high level of familiarity with the needs of the user base.
So why don’t more developers know about Xojo? With the features and history described above it seems like everyone show know what Xojo can do for them. That doesn’t seem to be the case so why not? In part 2 we’ll examine some of those reasons.