On Monday, Adobe announced the official 1.0 release of their Adobe Integrated Runtime (also known as AIR) to the public. The runtime, which has been in beta for while now, has become a platform for some popular internet applications like Pownce, Twhirl, and most recently AOL’s XDrive. The release of AIR is a big deal, but I don’t think people are making as big a deal as they could be.
The Cross Platform Problem
As more people are switching to platforms that are not made by Microsoft, like Linux or OSX, the problem of creating cross platform applications has become a burden for everyone. Not only do companies like Adobe and Microsoft have to worry about their applications running on multiple platforms but the independent developers are faced with this problem as well. Everyone is developing applications that tie into their favorite sites. Applications like Twhirl (Twhirl is a Twitter client) are a perfect example of this. If you want to reach the widest audience possible, you have to have a product that can run, regardless of the underlying operating system. Sure, Windows still dominates when it comes to sheer users, but more and more people are jumping ship. Yes, there is no mass exodus to leave Windows, but people are leaving and they want to take their favorite applications with them.
Where AIR Fits In
So where does AIR fit in? Adobe AIR comes into play for the specific purpose of creating an application that can work across multiple platforms. There are currently Windows and Mac versions of Adobe AIR, and a Linux version is due out later this year. That’s big news. That means a developer has to code an application a single time. No more developing different versions for different systems. If a developer knows Flash and Flex, then they can develop an AIR application that will run on all 3 of the major operating systems. Not only that, but the application will look the same across platforms, that’s one major complaint about cross-platform development that can be considered resolved.
While we might still be waiting on the Linux version of AIR the fact that one is in development is big news. Once it is released, the people developing AIR applications will not have to compile or rewrite any code in order for their application to run on Linux, it will “just work” and that is worth the price of learning Flash and Flex alone.
The Mono Argument
I’m sure there are some Linux folk out there that will point at Mono as an answer for cross-platform development. And these folks would be partially right. However there are two serious issues with Mono.
The first issue revolves around the fact it is built on a lot of Microsoft’s patents. Sure, Mono is probably in little danger of being shutdown (and I hope it never is), but the truth of the matter is, a lot of the technology is based off of Microsoft technology and they can make life difficult for Mono if they wanted to. While I think it would be a bad move for Microsoft to take Mono away, it is something that is a possibility.
The other issue with Mono (and this comes from someone who has used it to write applications), is the fact that there is a large amount of functions and routines that are not finished or aren’t even there. So not everything works as expected. Improvements are made in this area with every release and we will see Mono with all the functions completed, but right now it just isn’t the case.
For the record, I like Mono, I have used Mono, and think that it will eventually be a force to be reckoned with in the realm of cross platform development.
The Future is Here?
Is AIR the ultimate solution in cross platform development? Probably not, but it is a large step. Truth is, because AIR is a runtime, applications written on it run through some form of interpreter and thus take a speed hit. Applications written to run on top of Adobe AIR, will never be as snappy as a natively programmed application written in say C or C++ but what AIR offers is a way for developers to get their application on as many platforms as possible without having to learn the intricacies of programming for each platform. There is a single method to get your application on as many desktops as possible, you simply need to know Flash and Flex. Adobe has made a great step forward towards helping people develop cross platform applications. Now, if they could just release a native Linux version of Photoshop.