Thursday, March 13, 2008

Steve Jobs pans Flash on the iPhone

Published: 08:00 AM EST

Over the last year, many observers have wondered when Apple would deliver Adobe Flash support on the iPhone. At the company's shareholder meeting on Tuesday, Steve Jobs made comments that indicate that support isn't coming anytime soon, thanks to architectural limitations in Flash itself. A full explanation of those limitations follow.



Related AppleInsider articles:* Microsoft's Internet Explorer 8 chasing...
* German court re-locks iPhone; Adobe's Flash 9...
* iPhone workshop sparks grassroots development
* Mossberg: Apple working on Adobe Flash support...
* Apple to release Safari browser for Windows

Why Flash?

The iPhone's mobile Safari browser delivers such a desktop-like experience that the main remaining element missing for most users has related to Flash, software commonly used by web designers to add interactive applets to their websites. Adobe's Flash acts as a self contained environment for presenting interactive, animated elements on web pages.

The most common use of Flash is in banner ads that goad users to click the moving monkey or fight an opponent in order to draw attention to an advertised product. Flash has also become the lowest common denominator for embedding video clips into webpages, making it easier for web developers to present video clips that works on any system without forcing users to install a plugin.

Flash just works because most web users have the required plugin already installed; Adobe has bundling agreements with both Microsoft's Windows and Apple's Mac OS X. Users who don't have Flash pre-installed can download it for free, and Adobe now even offers a Linux version of the plugin.

Flash on the iPhone

Less technically inclined pundits have expected Apple to release a Flash plugin for the iPhone that works identically to the plugin used on desktop computers, similar to how the iPhone supports viewing PDF documents or Microsoft Word and Excel files. The problem is that the Flash runtime has never been designed to work on anything outside of a desktop computer, which has almost unlimited access to processing power and few constraints on battery use, available RAM, or heat dissipation.

The iPhone is a very different product. It's a fraction of the size of a laptop battery and uses a low power, embedded ARM processor that works unlike the Intel Core or PowerPC processors used in Macs and PCs that can run Flash. In order to develop a Flash plugin for the iPhone, Adobe's proprietary software would need to be recompiled and optimized for the ARM architecture, which isn't something Apple could easily do independent of Adobe.

More Problems for Flash

There are other problems that are even more significant, however. While desktop computers can typically afford to run any process at full bore, the iPhone's processor is not only smaller and slower, but also designed to use power far more efficiently, cycling down when not needed in order to both conserve power and to limit the heat that a fully running processor would produce.

The iPhone's OS X environment is also designed to run from a relatively small disk image stored in NVRAM; Adobe's Flash is designed to run on a desktop machine with few limitations on the amount of disk space consumed or RAM used; it can easily leak memory and gobble up more RAM than svelte iPhone apps are ever intended to use.

Even if Adobe could deliver its own Flash plugin for the iPhone that cleanly ported the aging Flash environment to ARM, the work required to optimize power and memory consumption and manage heat dissipation would result in a plugin that could not run the majority of Flash web applets that have been designed to work on desktop computers. This would be like a Windows emulator that only runs software specifically designed for Vista; the majority of users would want a version of Flash that runs all the old code out there on the web, not just a subset of newly developed applets that aren't available yet.

A Big Maybe

None of this should be any surprise to developers who have been keeping tabs on Apple's guidelines for iPhone development. Last January, Jobs said the iPhone would not ship with support for Sun's Java, but left a question mark hanging on the subject of Flash support, using the word "maybe."

Between then and the arrival of the iPhone in late June, Apple began work with Google to migrate the YouTube video library from a Flash-based player designed to run from a web page to a custom iPhone interface that downloads ISO standard, MPEG 4 H.264 videos from Google's servers. H.264 is the same standard video format being used by everything from Sony's Blu-Ray discs to Apple's iTunes and open source libraries such as x264.

That move was clearly an effort to greatly reduce the iPhone's need for Flash as a container for distributing web videos. Once the iPhone was delivered, the appearance of its H.264 YouTube player and the lack of Flash support dropped a big hint about the likelihood of Flash ever arriving, but the evidence against Flash support on the iPhone continued to mount.

Dear Developers: Don't Use Flash

No comments: