If you’re reading my blog, I’m going to assume that you already know what AIR is. If you don’t, have a look at the official AIR product page before reading any further. Rather than tell you what you probably already know about AIR, I’d like to mention a few things that people might not have realized yet.
AIR isn’t just another Adobe product. It isn’t just a new tool or utility. It’s an entirely new way to develop, deploy, install, and use desktop applications. Entirely new. I really can’t stress this point enough. In the world of software, new products are launched all the time (if you don’t believe me, just follow TechCrunch for a few days — it’s staggering), each with a marketing team that wants you to believe that their technology is nothing less than revolutionary. So when something completely different does come along, it’s sometimes hard to distinguish. How successful AIR will be and how quickly the technology is adopted is an entirely different topic, but there is absolutely no doubt that it’s new and disruptive. I could easily write an entire white paper on the importance of AIR, but for the sake of brevity, I’ll focus on three main points:
- Cross-platform is real. For a long time, the idea of running the same applications and getting the same experiences on Mac, Windows, and Linux was a little bit like the idea of world peace. Everyone seemed to agree that it would be great, but it never seemed all that realistic. I think it’s safe to say that AIR is the first technology to really get the idea of cross-platform right. I shouldn’t over-idealize this aspect of AIR, however. To be perfectly frank, there are still challenges with building 100% cross-platform applications. Menuing systems work differently on Mac and Windows, and all platforms have concepts and conventions that other platforms don’t have (system tray, dock, etc.). But I have written at least a dozen fairly full-featured AIR applications since we started working on the runtime, and I have never come across a cross-platform problem that I couldn’t solve. In some cases, I’ve had to write layers of abstractions, and in some cases I’ve opted to completely avoid things like menus and focus instead on making functionality better integrated in the UI (which I believe is the trend in software development anyway — look at Microsoft Office 2007, the iPhone, and many of the best Mac applications). But the extra work I’ve had to put into making sure my apps ran seamless across platforms was often nothing more than an afterthought, and certainly negligible compared to the advantages of anyone on almost any desktop system being able to run my app. This point was really driven home when I first started using AIR on Linux. I’m a big Linux fan, and the idea of not just being able to run the same apps on Linux that I run on Windows and Mac, but actually develop those apps on Linux as well, is incredible satisfying and liberating.
I’ve been in the software business for 10 years, and I’ve worked on all kinds of projects. I’ve been fortunate that I’ve never had to work on a project that I didn’t like or believe in. But I believe AIR is the most important project I’ve ever had the good fortunate to be involved with. I can’t wait to see what the world does with it.