Adobe's attempt to bring its AIR platform to all handheld devices smells strongly of Sun's attempt to dominate the smartphone market with Java. But will the software giant's efforts suffer the same fate?
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
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
Chris Duckett travelled to Max as a guest of Adobe.