commentary When Adobe's CTO Kevin Lynch said this week that extending the software giant's AIR platform onto mobile devices would allow for one application to run on many devices and distribution channels, very tiny alarm bells in the back of my head started to ring.
Once upon a time, Sun was touting its "Write once, run anywhere" mantra as being the killer feature of Java, and that turned out well didn't it?
It appeared as though Lynch, giving the opening keynote at the company's Max conference this week in the United States had stolen the Sun playbook and replaced the word "Java" with "AIR". Once upon a time, Sun was touting its "Write once, run anywhere" mantra as being the killer feature of Java, and that turned out well didn't it?
Getting a Java application to play nicely across multiple mobile phone vendors without modification was akin to a minor miracle.
To be fair though, smartphones have moved into the realm of underpowered desktops and can handle the complete Java runtime now. Adobe hopes to take the AIR platform onto these handsets now and succeed where Java failed.
One problem, as I see it, is that a smartphone is still not a desktop and additional work will need to be done to get apps to function properly across multiple form factors.
Speaking at a press conference later in the Max proceedings, Lynch said that recent Flash features have been driven not from the desktop, but from smartphones.
The multi-touch support in Flash was a result of the touch interface that many phones have, and the focus in Flash 10.1 on reducing RAM and power consumption came from the phone focus; being on the same codebase for mobile and desktop means that PC users will enjoy the smartphone improvements "for free", as Lynch put it.
Therefore if a developer builds an application for the desktop and they want to use the exact same codebase on a smartphone, they may need to add in multi-touch and other gesture support at the very least.
It's not going to be as simple as pointing desktop and mobile users to the one AIR application without an amount of functional duplication of code at the very least. At the other end of the spectrum many applications will still have distinct mobile and desktop versions — if only for the user interface. It also seems that AIR is repeating some of Java's history.
Both runtimes were rightly regarded as fat and slow when they came out. In the upcoming AIR 2.0, work has been done to improve performance — on the platform itself but also on popular applications such as TweetDeck. But more distressingly AIR 2.0 will implement native process calls. The moment that a runtime begins to go native, the cross-platform interoperability must take a hit (*cough* Java *cough*).
While it will be useful on the desktop to be able to call Excel, how will that feature work on a smartphone? There are a number of reasons why AIR has a better shot at reaching platform nirvana. Firstly, it will not be distracted by the server room; desktop Java disappeared from Sun's radar for years as it made gains with J2EE and its brethren.
Secondly, smartphones and desktops are closer now than back when Java was making this same play. The schism between PC and mobile will remain, but the chasm is not as wide as it once was. On the topic of following the path Java took, Rob Christensen, product manager for AIR, said: "It's definitely been done before, at least attempted. [...] We're really excited to take on the challenge and bring our toolchain, our services, our runtimes and frameworks to solve those problems."
Christensen pointed out that unlike Java, Adobe is the sole provider of the runtime, so AIR sidesteps the issue of having multiple vendors deploying a runtime, and does not have the spectre of fragmentation hovering over it.
No doubt Adobe is also happy to do without the governance issues that plague Java.
Can Adobe bridge the gap between desktop and mobile like Java once said it could? If I had to place a bet on this, I'd say it couldn't. AIR has a very good chance of being a great platform to write cross-operating system applications in the desktop space, but phones do not behave like PCs, and until they do, any platform that tries to be master of all domains will end up being master of none.
The big difference between AIR and Java, though, is that Adobe has not bet its entire company on the success of AIR, and never would. Sun bet so much on Java that it changed its stock symbol to Java. I wouldn't recommend Adobe change theirs to AIR anytime soon.
Chris Duckett travelled to Max as a guest of Adobe.