Apr 292010

In case you haven’t yet been bombarded by retweets, emails or newscaps on Steve Jobs’ detailed comments on Flash, and why Apple isn’t using it on iPhone and iPad currently, Steve has laid down the proverbial gauntlet. I was surprised to see such public comments, but my opinion is that they are largely valid; I’ll go through some of them below.

Openness / Standards

Adobe’s Flash products are 100% proprietary. They are only available from Adobe, and Adobe has sole authority as to their future enhancement, pricing, etc … they are controlled entirely by Adobe and available only from Adobe. By almost any definition, Flash is a closed system.

… Though the operating system for the iPhone, iPod and iPad is proprietary, we strongly believe that all standards pertaining to the web should be open. Rather than use Flash, Apple has adopted HTML5, CSS and JavaScript – all open standards. Apple’s mobile devices all ship with high performance, low power implementations of these open standards. HTML5, the new web standard that has been adopted by Apple, Google and many others, lets web developers create advanced graphics, typography, animations and transitions without relying on third party browser plug-ins (like Flash). HTML5 is completely open and controlled by a standards committee, of which Apple is a member.

Apple even creates open standards for the web. For example, Apple began with a small open source project and created WebKit, a complete open-source HTML5 rendering engine that is the heart of the Safari web browser used in all our products. WebKit has been widely adopted. Google uses it for Android’s browser, Palm uses it, Nokia uses it, and RIM (Blackberry) has announced they will use it too. Almost every smartphone web browser other than Microsoft’s uses WebKit. By making its WebKit technology open, Apple has set the standard for mobile web browsers.

My Take: Though Jobs says he saves his most important point for last, I think the first point is actually the most important because of the medium in which Flash operates (the web). Flash is undeniably a closed system, regardless of whether you think it works well or not on your platform of choice. Adobe decides (solely) what it does, how it does it and on what platforms. Adobe decides how and when things get fixed or if they get fixed. There are no third parties who have a hand in any of these decisions, ultimately. This is the opposite of how web standards work, where multiple companies and other interested parties define common capabilities and over time implement a stable standard that stands for a number of years, until revised to meet new technological capabilities and user needs.

You can suggest Apple is selling HTML 5 here and maybe they are, but what their selling is something that stands to make everyone’s products and the web in general a more enjoyably experience for developers and users alike. There’s not much getting around where users’ interests lie long-term. It’s with robust, standards-based applications and designs. Adobe can either embrace that idea and bring Flash into the fold somehow, or they can say “Flash player is free, Flash content is great, Flash is everywhere; why should we change?” That would of course, miss the larger point about what’s best for customers long-term.

Missing the Good Stuff

Adobe has repeatedly said that Apple mobile devices cannot access “the full web” because 75% of video on the web is in Flash. What they don’t say is that almost all this video is also available in a more modern format, H.264, and viewable on iPhones, iPods and iPads. YouTube, with an estimated 40% of the web’s video, shines in an app bundled on all Apple mobile devices, with the iPad offering perhaps the best YouTube discovery and viewing experience ever. Add to this video from Vimeo, Netflix, Facebook, ABC, CBS, CNN, MSNBC, Fox News, ESPN, NPR, Time, The New York Times, The Wall Street Journal, Sports Illustrated, People, National Geographic, and many, many others… .

Another Adobe claim is that Apple devices cannot play Flash games. This is true. Fortunately, there are over 50,000 games and entertainment titles on the App Store, and many of them are free. There are more games and entertainment titles available for iPhone, iPod and iPad than for any other platform in the world.

My Take: Jobs is essentially correct here regarding H.264-enabled viewing of existing content, but this is sort of an academic point and more speaks to a CEO hitting the talking points on all the cool stuff his company’s gadgets can do. Point taken but tell us something we don’t know.

A Sturdy Foundation?

Third, there’s reliability, security and performance.

Symantec recently highlighted Flash for having one of the worst security records in 2009. We also know first hand that Flash is the number one reason Macs crash. We have been working with Adobe to fix these problems, but they have persisted for several years now. We don’t want to reduce the reliability and security of our iPhones, iPods and iPads by adding Flash.

In addition, Flash has not performed well on mobile devices. We have routinely asked Adobe to show us Flash performing well on a mobile device, any mobile device, for a few years now. We have never seen it. Adobe publicly said that Flash would ship on a smartphone in early 2009, then the second half of 2009, then the first half of 2010, and now they say the second half of 2010. We think it will eventually ship, but we’re glad we didn’t hold our breath. Who knows how it will perform?

My Take:  Security holes aside (all platforms have them, including OS X) Jobs’ phrasing “why Macs crash” is misleading. In my experience and in listening to that of others, Flash doesn’t cause the entire Mac system crash, but rather the browser it’s operating within to crash. The larger point is that there is substantial evidence pointing to a real performance problem for Flash on OS X and iPhone OS.

The good news is, it appears Adobe is already preparing to do something about it, offering a new Flash player beta for Mac that utilizes some of Apple’s new developer tools to leverage GPU processors to decode video.

IMO, if Apple’s goal is to keep their mobile devices standards-based and to use processing and battery resources efficiently, they are justified in avoiding Flash for now. If Adobe makes meaningful strides towards improving performance and openness of the Flash platform, Apple will certainly be less justified in maintaining such a position over time.

Battery Life

To achieve long battery life when playing video, mobile devices must decode the video in hardware; decoding it in software uses too much power. Many of the chips used in modern mobile devices contain a decoder called H.264 – an industry standard that is used in every Blu-ray DVD player and has been adopted by Apple, Google (YouTube), Vimeo, Netflix and many other companies.

Although Flash has recently added support for H.264, the video on almost all Flash websites currently requires an older generation decoder that is not implemented in mobile chips and must be run in software. The difference is striking: on an iPhone, for example, H.264 videos play for up to 10 hours, while videos decoded in software play for less than 5 hours before the battery is fully drained.

When websites re-encode their videos using H.264, they can offer them without using Flash at all. They play perfectly in browsers like Apple’s Safari and Google’s Chrome without any plugins whatsoever, and look great on iPhones, iPods and iPads.

My Take: It’s difficult to argue against the benefits of adopting hardware-based H.264 encoding / decoding. Whether the 100% difference in battery life is true is up for debate and study. Sounds like some  RDF leaked into the final paragraphs there,  but I wouldn’t be surprised if the percentage was significant either way.  That’s not a slam, simply an observation from my readings in various forums, blogs, etc.

Relying on 3rd Party Technology

… We know from painful experience that letting a third party layer of software come between the platform and the developer ultimately results in sub-standard apps and hinders the enhancement and progress of the platform. If developers grow dependent on third party development libraries and tools, they can only take advantage of platform enhancements if and when the third party chooses to adopt the new features. We cannot be at the mercy of a third party deciding if and when they will make our enhancements available to our developers.

This becomes even worse if the third party is supplying a cross platform development tool. The third party may not adopt enhancements from one platform unless they are available on all of their supported platforms. Hence developers only have access to the lowest common denominator set of features. Again, we cannot accept an outcome where developers are blocked from using our innovations and enhancements because they are not available on our competitor’s platforms.

Flash is a cross platform development tool. It is not Adobe’s goal to help developers write the best iPhone, iPod and iPad apps. It is their goal to help developers write cross platform apps. And Adobe has been painfully slow to adopt enhancements to Apple’s platforms. For example, although Mac OS X has been shipping for almost 10 years now, Adobe just adopted it fully (Cocoa) two weeks ago when they shipped CS5. Adobe was the last major third party developer to fully adopt Mac OS X.

Our motivation is simple – we want to provide the most advanced and innovative platform to our developers, and we want them to stand directly on the shoulders of this platform and create the best apps the world has ever seen. We want to continually enhance the platform so developers can create even more amazing, powerful, fun and useful applications. Everyone wins – we sell more devices because we have the best apps, developers reach a wider and wider audience and customer base, and users are continually delighted by the best and broadest selection of apps on any platform.

My Take: All except for the third paragraph (which is typical Jobsian misdirection and hyperbole), I agree with everything in general terms. Apple would be foolish to hinge the user experience of their devices on a third party media platform or technology. This isn’t limited to just Adobe; it makes good sense for Apple, if they’re concerned about guaranteeing the quality of user experience on their mobile devices, to control the APIs, the hardware and how content is accessed. They can’t just cross their fingers and hope Flash is good enough to provide a smooth user experience for a variety of interactive media and video online, from one release to the next.

As for adoption of Cocoa, Jobs is taking a rather narrow view of “major third party developer” here. Adobe has been slow to adopt it, but many other companies have been also. Microsoft for starters, has only now begun re-writing one small part of their Office Suite in Cocoa (the new toolbar “Ribbon” UI). The underlying code of all the core functionality, is Carbon and has essentially remained unchanged going back about 12 years  if my counting is right. Anyone who has used Office 2008 knows what a sluggish, buggy POS it was when it first came out, and is now (after several updates) barely tolerable for simple productivity workflows. Documents open and save slowly, apps crash and quit slowly. If Apple wants to wag their finger at someone who has missed the Cocoa train in a way that cost users time and frustration, look no further than Redmond IMHO.

The point of all this is that many developers avoid the Cocoa transition like the plague. Transitioning from Carbon to Cocoa is a non-trivial thing and it’s nowhere near as easy as Apple made it out to be way back when, with their “click a button to compile for Cocoa” gibberish at developer conferences, etc.

I’ve been fortunate enough to  work with Adobe’s development teams as a software tester over the past several years, and I know at the developer level, Adobe is a company packed with intelligent, driven people who are extremely passionate about the products they make. I have no doubt if they take an honest look at this situation -in isolation, without respect to their distaste for transitioning to Cocoa- they will realize Jobs is making some valid points which need to be addressed. Hopefully today’s announcement of a GPU-accelerated beta is a step in that direction.

Unless otherwise noted all content ©Dan Moughamian Suffusion WordPress theme by Sayontan Sinha