Adobe’s Kevin Lynch on AIR’s Open-Source Road to the Desktop
This week, Adobe released version 1.0 of it’s Adobe Integrated Runtime (or AIR for short) a mechanism that allows applications created for the internet to run on the desktop completely independent of the web browser and across multiple operating systems. You can read our initial coverage of AIR’s release on the Compiler blog.
We got the chance to talk with Adobe’s Kevin Lynch prior to AIR’s release on Monday. Under his previous title of chief software architect, Lynch led the development of AIR from its beginnings under the code-name "Apollo," through it’s year-long public beta stage. During the development process, Lynch (who was recently promoted to chief technology officer of Adobe) remained vocal about the fact that his team was both using and contributing to open-source technologies.
When we spoke to him over the telephone on the eve of AIR’s release, Lynch was eager to talk about how open-source guided AIR’s development and it has influenced the growth of web apps in general. We also talked about the state of Flash and AIR on Linux, and AIR’s potential to bring new applications to the Linux desktop.
We started out by asking Kevin what role open-source played in AIR’s development.
Kevin Lynch: We’re really working to increase our usage of open-source technologies and to contribute to open-source. Because we developed AIR so openly, we were able to share it with developers and make sure we were developing the right things.
This is a huge release for us. We’ve got a cross-operating system runtime that really works on Mac and Windows. We’re in the midst of Linux development right now, and that one’s starting to shape up. That will be out later this year. It’s looking really good already, but we’re still working on it. We’re actually looking for Linux testers, so if you or anyone else wants to get involved, let us know.
(At an Adobe press event Monday, Lynch showed a version of AIR running on an IBM ThinkPad with Ubuntu Linux installed. It was a little slower than the Mac version, but fully functional.)
Of course you can use any Ajax framework to create applications with AIR, but one of the ways people are creating these applications is with Flex. (The Flex 3 SDK) is free and it’s open-source. Many people still don’t realize that transition has happened with Flex. It’s one of the projects that wasn’t open-source originally, and it’s now been opened.
We have an open bug database for Flex. Our bugs are all public, so if you see something wrong you can file a bug. Anyone in the community can vote on a bug, so the public can influence what’s happening on the development teams. And of course, with Flex, you can contribute code changes as well.
We’ve been increasingly doing that at Adobe, incorporating more open-source technologies in our software and we’re opening a bunch of our technologies. The HTML engine inside AIR is WebKit, which is an open-source engine. And the local database AIR uses, SQLite, is also open-source.
AIR itself is built, of course, with Flash Player, the core of which we released as open-source. That’s the project called Tamarin, it’s the virtual machine inside Flash. That was donated to Mozilla, so our team is working on Mozilla-hosted code. We’re showing some good movement there, and I think that’s helping with the adoption of Flash Player on Linux.
Wired.com: What’s the ecosystem of Flash on Linux like right now?
KL: We have Linux development happening at the same time as Mac and Windows now for the Flash Player. You can see the updates we’re putting out right now are simultaneous across all three OSes. For example, the recent update to Flash Player 9 which supported H.264 was released on Mac, Windows and Linux. Our intention is to keep Flash on Linux in sync with the other operating systems from now on. Once AIR is out on Linux, we also intend to keep future releases in sync with Mac and Windows.
Another potentially exciting thing on the topic of Linux is that when you create an application for AIR, you may think that you’re creating something just for Mac and Windows users, but in fact that application will also be able to run on Linux. So AIR could open up a very fertile ground for applications to come to Linux and deliver great user experiences on Linux — even without people intentionally making them for Linux.
So that is potentially a very disruptive thing. We’ll see what happens.
Wired.com: Many of the companies participating in the push to get RIAs onto the desktop — Adobe, Google and even Microsoft with Silverlight — are opening up large parts of the development process and giving a lot of code away. What is it about the effort to transition RIAs to the desktop that’s fostered this move toward open-source?
KL: I think what’s actually underlying a lot of it is the way the internet has impacted the software industry. The internet connects us all in better ways. We’re more in touch with each other, there’s more collaboration happening. This sort of social network forms around software. You can see that in news groups, in wish lists, and in the open bug databases where people can vote on bugs. All of these technologies are web technologies, and fifteen years ago, many of them were not really part of the daily life of software development.
The fullest realization of that social network is that the community around the software not only wants to comment on it, they actually want to help improve it and change it and fix it. That’s what I think generates the impetus to make your software open-source and really embrace that network of people around your software who want to help make it better.
Obviously, that’s a big change from the way most companies develop software. For companies like Adobe, it’s something we’re transitioning to with products like Flex. We’re learning.
The other effect is hosted services. Software is moving from being packaged, where you develop for a particular operating system and put it in a box, to being developed and distributed over the internet and being designed to run across operating systems. That’s where all the innovation has moved to. Software isn’t as OS-specific anymore, it’s moving to rich internet applications. It’s a sea change in how software in general is being built.
But we lost things, too. So what AIR is doing is bringing back the stuff we lost, but still enabling you to build those apps using web technologies and be able to update them like you could if they were on the web.
We’re working to fuel that revolution with things like AIR, which enables those apps to get back some of the capabilities of traditional software. You can raise notifications, you can access the local disk, you can support drag and drop. When we went to the web, we got a lot of advantages. Everyone can get at the software and it’s really easy to push out updates.
Wired.com: I’m wondering how you see that division between the browser and a platform like AIR. AIR apps have a different look and feel, more "desktoppy" than browser-based web apps. But is that where things are headed? Do people want to retain the desktop behaviors? Psychologically, don’t you think that the shift to web apps has put people into the mindframe of "OK, now I can do everything inside the browser?"
KL: I think that AIR and the browser are complimentary. They’re going to co-exist. If you think about the experience in the browser right now, it’s going from site to site, from page to page. It’s somewhat of an ephemeral experience. For people who rely on particular applications on the internet and use them frequently, they want to give them a greater presence in the computing environment. Those are the applications I imagine you’d want to collect on your computer. Those would run on AIR. Then they can be in your Start menu or in your Dock. They can notify you when things change. You can have a closer relationship with those applications than you would in the context of a browser.
E-mail applications are a great example. There’s a huge move of e-mail applications to the web, but in the browser, you need to be online to access your archived communications. You can’t be notified of new messages that are urgent unless you have the browser window open. So it’s about letting those applications you depend on live up to their full potential and have the richest experience.
Some would argue that maybe the browser should just do everything. I think it’s hard for a piece of software to be the end-all, be-all of everything. Psychologically, I think it’s a lot more natural for people to use an application the way they traditionally have done, which is to go into the Applications menu and launch it.
We’re very focused on supporting the collaboration between the two environments. There’s an application out from Nick.com, the website for Nickelodeon. It’s a puzzle game. On their website, they’re hiding a bunch of puzzle pieces on different pages in the browser. Then there’s an AIR application that contains the puzzle game itself. When you go to their website and find a puzzle piece, you can drag it from the browser and drop it onto your Nick.com AIR applications. It’s cool — when you collect all the puzzle pieces and assemble them in the AIR application, you get to watch a video that you can’t see elsewhere.
Wired.com: Are there any examples of these AIR apps which sync to mobile devices?
KL: Not too many yet. AIR is just on the desktop right now, but we do intend to do a mobile version.
Our plan is also to get AIR onto mobile devices so you’ll have the same kind of application install experience, and so developers can build mobile applications using web technologies just like they can now on the PC.
Wired.com: Is that dependent on Flash being able to run on those mobile OSes?
KL: It’s a different project so there’s no direct dependency. Of course, AIR incorporates Flash, so it’s able to take advantage of the fact we already have Flash running on mobile. The WebKit engine we built in also works on mobile already, and PDF works on mobile. So different devices will have different levels of capability, but the runtime will be able to perform on multiple mobile OSes, just like we’re able to do today on Windows and Mac OS X.