Flash on Mobile – is Adobe on the right track?

In reference to Aral’s article, Why Adobe’s mobile strategy is fundamentally flawed, I’ll have to back Adobe on the basic question at least. They have the right strategy just substantial technical challenges. I don’t believe the flash to standalone app compiler option will work for general flash apps. It’s a fine line between bundling a VM and compiling a standalone app. I suspect the swf’s they compile with the converter don’t use much of VM parts. Apple is unlikely to let them move that line far enough to break their lock on iphone development.

On the technical challenges for improving the performance of flash today, briefly: 1) scanline rendering and antialiasing made flash successful 10 years ago with superior graphics but I suspect we will need phones about as powerful as PC’s back then to make that efficient. 2) animation based apis based on polling as the default. 3) most flash code uses dynamic dispatch, and native method calls which impose hard limits on optimization. These are all independent of how the VM runs and so limit how much a compiler can help anyway. Couple this with an old code complex multi-threaded C++ program, competing needs for desktop and browser on top of the mobile imperative and you have a whopper of an engineering challenge.

Adobe has great engineers working on improving the speed of this code but they can only do so much without creating an incompatible platform (and they have that already in flashlite). They’d be lucky to get back to where today’s player runs as well as the one from 10 years ago given all of the features added since then. Fortunately phones are almost where they need to be in terms of memory and raw CPU, unfortunately those computers were plugged in so they could use those cycles cheaply. So on the positive side, it seems there’s still a chance for Flash to be the first/best viable cross mobile/desktop solution. Personally though, I like Google’s Dalvik environment for the front runner in that race. Dalvik is newer, designed for mobile from scratch, easy to make code portable to server and desktop, use hardware graphics acceleration for improved battery usage. Java makes mobile/server interop easier.

I do agree with Aral that we’ll see flash apps before we see flash in mobile browsers, at least enabled by default. That’s another major technical hurdle on top of standalone flash apps and for mobile performance is king for the next few years. But I do think for the mobile strategy at least Adobe is running as fast as they can and in roughly the right direction. I hope the batteries have enough juice to get them there.


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s