There was a time when the idea of running the same code on different computers wasn’t even imagined. Programming languages were written specifically for a particular computer. And computers were purchased for very specific purposes so why would you even want to run a particular program on another type of computer?
It was the desktop computer revolution that changed that. By the mid-to-late 1980’s, there were more and more desktop computers and developers wanted to target all of them. Soon, however, Windows became so dominant that many developers chose to focus on that one OS. Some Mac developers, not wanting to miss out on the potentially enormous Windows market, either went to the trouble of writing two versions of their applications or used a tool/language that would allow them to target both Mac and Windows from a single code base. This was the beginning of cross-platform development.
Recently, I was asked by tech blogger Chris Pirillo if cross-platform was really important anymore. Cross-Platform is actually more important than ever. Why? First of all, while the Windows PC market is seeing flat or declining sales, Apple’s Mac marketshare is growing. We are seeing this at Xojo. More and more Windows developers are coming to us because they can no longer ignore the Mac market. Linux is the predominant server OS. If you want to write server software that can run on some combination of Linux, Windows and OS X, you’ll want to be writing cross-platform code.
What about the web? It’s just a single platform right? Well, not really. Web developers using what I call the assembly language of the web (HTML, CSS, JavaScript, PHP and AJAX) must deal with at least 4 different browsers (IE, Chrome, Firefox and Safari). In theory, these browsers all interpret HTML, CSS and JavaScript the same way but anyone who’s ever created a web app knows that’s unfortunately not the case. Ideally, a cross-platform development tool greatly reduces these sorts of differences for you.
If you’re developing mobile applications there’s a good chance you’ll want to support iOS and Android. This is yet another place where cross-platform is important.
Finally, there’s a very good chance you’ll want your code to run on several of these types of platforms. You may need a desktop, web and mobile version of your app. And you might even want the core business logic of your app to run on a server somewhere and be accessed by client-side apps runing on these very different platforms. So being able to write code that is transportable across not just operating systems but from the desktop to the server, to the web and mobile, is arguably more important than ever before.
Our goal with Xojo has always been to abstract you from the details of these different operating systems, devices and computing platforms so you can focus on what makes your applications unique. Xojo provides you with a single programming language and tool that allows you to target them all. Why should you have to learn different languages and tools? With Xojo, you can build for OS X, Windows and Linux. And you can build for the desktop, the server, the web and coming soon, mobile with iOS (Xojo iOS was release in Xojo 2014r3 and Xojo Pi for Raspberry Pi was released in 2015). That’s cross-platform.
There are other tools that take short cuts with interpreted code, dependences on runtime libraries and by drawing all controls themselves. Xojo compiles to machine code, creates native apps and uses native controls so that your app takes on the look and feel of the target platform. That’s cross-platform.
Xojo started out supporting just the Mac. Not OS X but its predecessor, Mac OS. Xojo supported the Motorola 68000 and PowerPC processors back then. Next we added support for Windows and the x86 processor followed by Linux. Later, when Apple made the jump to OS X, we were right there as well. Now we support the web. Through all of these transitions, Xojo users have been, for the most part, shielded from these changes. Moving their projects from platform to platform, from processor to processor, has been relatively painless for Xojo users. We will be adding another OS and processor later this year with iOS and the ARM processor. ARM opens up some interesting additional possiblities.
There was a time when many would have said the world is standardizing and the future means fewer and fewer platforms. Look at what happened. Cross-platform is now more important than ever.