Friday, April 30, 2010

Thoughts on "Thoughts on Flash"

By now you've read Steve Job's "Thoughts on Flash" which he ends with this:

"Perhaps Adobe should focus more on creating great HTML5 tools for the future, and less on criticizing Apple for leaving the past behind."

Which really does say it all, even though I strongly encourage you to read the entire post.  Daniel Eran Dilger, RoughlyDrafted, points out not only why Jobs doesn't love Flash on the iPhone, but why Jobs secretly loves that other phone manufacturers are self-sabotaging their platforms by supporting flash.  An excerpt here, but the full article is worth your time.

But first let me clarify: Jobs certainly doesn’t love Flash on the iPhone OSfor the reasons he outlined in his blog posting, writing in character as (it would appear) the Fake Daniel Eran Dilger:
  • First, Flash is closed and proprietary to (owned by) Adobe, meaning that its future development is completely under the control of one company, making it toxic to the open nature of the web.
  • Second, the existing content Adobe keeps promoting as “critical to the full web experience” is a mixed bag of stuff that is mostly either also available without Flash (like YouTube) or junk that isn’t really desirable (those Flash games that are weak sauce and wildly overshadowed by real games written natively for the iPhone OS).
  • Third, Flash is a black hole of security problems, performance issues, and instability. Anyone on a Mac is aware of how Flash eats up RAM and CPU cycles while doing nothing. But even on Windows, Flash is a major vector for security problems because it is a web plugin, making it a front door to attacks (at CanSecWest, security expert Charlie Miller was asked which browser is safest, to which he replied, “there probably isn’t enough difference between the browsers to get worked up about. The main thing is not to install Flash!”). Adobe simply hasn’t done a good job of delivering Flash Player as a desktop platform, but in the mobile area, these issues are even a greater problem.
  • Fourth, Flash isn’t optimized for battery life efficiency. Flash was designed to animate the web on desktop PCs, where computational efficiency wasn’t an important engineering factor. Additionally, all the Flash videos Adobe brags about “as critical to the full web” is largely pre-H.264, meaning Flash has to decode it in software rather than leveraging the hardware accelerated codecs in mobile devices (the iPod/iPhone only support MPEG-4 video codecs because they can be accelerated in hardware. Most existing Flash videos are FLV/VP6, which lacks mobile hardware decoding support. Incidentally, this is also why Ogg Theora is brain dead as a mobile codec).
  • Fifth, existing Flash content is not designed to support multitouch interfaces. To upgrade it to support multitouch, you have to rewrite and redesign how the interface works. Why do that in Flash instead of embracing open web standards?
  • Sixth, Apple doesn’t want its third party developers to be tied to a “lowest common denominator” middleware platform that may not expose the unique features of the iPhone OS if it is not in Adobe’s interest to support them. And it wouldn’t be in Adobe’s interests to support novel things Apple adds to the iPhone OS if those features aren’t also in Android, webOS, BlackBerry OS and Windows Phone 7, because that would derail Adobe’s cross platform efforts. This is the same problem that has hindered JavaME from being any good across mobile devices. JavaME similarly promised to bridge different hardware and vendors, but really just watered down the features available to fancy phones, making them expensive, underutilized versions of everything else that ran JavaME. And everything else implemented JavaME poorly anyway.

No comments: