There are two Adobes. One is the company that produces the design tools that give our image-saturated world its glossy look and feel. It’s the Adobe of Photoshop and InDesign, of Premiere and LightRoom. It’s really very like Apple, with its gleaming San Jose tower blocks and deep code of secrecy.
That was the Adobe that was on show in Los Angeles last week, the Adobe that delights in talking about directions in ColdFusion’s nested transaction model or in pioneering delivering enterprise application frameworks on Amazon’s EC2.
We all know the big news from MAX now. Not the cross-compiler that will deliver Flash applications to the iPhone (though that was pretty cool, and a shot in the arm for the LLVM open source compiler project that powers Adobe’s Flash translation engines). The really important announcement was the change in how the Flash player is being developed.
In the past Flash was a desktop tool first and foremost. That’s why the mobile version, Flash Lite, always lagged behind, as it was desktop Flash with bits removed. Taking things out of a complex run time engine is never easy, and certainly never quick, so while desktop Flash marched on to Flash 10, the mobile version languished as a dialect of Flash 8 – more than two years behind, and a drag for designers and developers who wanted to bring the modern web to the mobile phone.
With Flash 10.1 coming for (almost) all smartphones as well as desktops and netbooks, there had to be a big change. As Adobe CTO Kevin Lynch describes it, “We had a separate mobile client engineering team and a personal computer engineering team. So we put those together a year and a half ago now, and we now have an integrated team, all on one floor in the Bay Area”.
That means there’s one integrated code base with a mobile-first development model, which has led to some interesting side effects – much of what has been developed for mobile is now coming for free on PCs, like multitouch support and improved memory management. The core code is optimised for performance, with other smaller teams then porting it to specific platforms.
There will always be issues – as devices often have specific APIs for their hardware. Even so, Adobe’s new found openness is helping here, through the Open Screen Project, where companies like Nokia and ARM are now enthusiastic co-developers. The result is a set of common interfaces for hardware like accelerometers and multi-touch sensors. With AIR for smartphones a year or so away (and a mobile version of the Flex framework due before then) there’ll soon be even more hardware support.
Adobe is working on delivering on its new multi-screen promise, and thinking hard about what goes on each screen, from mobile to desktop to TV. A strong core platform means that it’s easy to fit a Flash Player into the small amount of memory in a TV, as well as on a whole spectrum of devices. There’s a lot of optimisation still to be done in Flash 10.1, with CPU and memory being the main constraints.
You won’t see Flash on older ARM platforms like ARM 9 (which will still run Flash Lite) – instead it’ll be limited to more capable hardware like the ARM 11 and later.