The ruler of the great pome has issued his latest misinformed rant on the Flash player, entitled “Thoughts on Flash”. Just like most edicts against the Flash player by Apple, this too has bits of truth mixed in generous doses of FUD.
For those who haven’t read it, this post by Steve Jobs enumerates Apple’s issues with the Flash player which keep the player off the iPhone OS. He has jotted down his thoughts into a long post divided into 6 points. We shall pass each of these points through the bullshit detector, and see what passes through. We cover some of the major issues under each of the points Steve Jobs discusses.
Point 1: “open”:
- Flash is 100% proprietary
Simply not true. Parts of Flash, perhaps a major part are open specifications or open source. For example, Adobe donated the ActionScript 3 runtime called “Tamarin” to Mozilla for use in their browser. So essentially, the part of Flash Player which runs ActionScript 3 is open source.
Quite a few of the technologies used by the Flash player, such as RTMP, AMF etc are open. Adobe provides a free and open source SDK for creating Flash content called Flex. Flex is completely open source including the compiler.
There is at least one open source project aiming to create a spec compliant open source Flash Player, Gnash.
- Flash is a closed system owned and run entirely by Adobe, which controls its pricing, development and future direction
Essentially true, however quite a few features are those which have been requested by users. The direction of the Flex SDK for example has been known to been affected based on the demands of developers. For example, Flex 4 during its development period was using prefixes for new components, however due to the community reacting against this, Adobe switched to the better namespace based system used in Flex 4. This decision affected Flash Builder 4, and Flash Catalyst CS5 among other products.
- Apple’s products are proprietary too, but they believe the web should be open
Why the distinction between web and native apps? Why should native apps not be open? Many people believe that the iPhone OS should be open as well. Don’t force your beliefs down other people’s throats.
- Apple devices have low power high performance implementations of HTML5
For an HTML5 website performing the same multimedia rich tasks as Flash, it will definitely use as much, or more power, and will perform slower than Flash. Why? Because they are performing the same task. Here is an example of a benchmark the HTML5 canvas against Flash content when they do the same thing. When the same benchmark was run on a Google Nexus One phone, Flash Player 10.1 emerged a victor in performance.
Of course, this will change over time. In my system for example, Opera 10.52 boasted higher speeds than Flash 10. So there certainly is scope for improvement.
- HTML5 is a standard
Just simply NOT true. As a member of the committee this claim by Apple is quite fallacious. HTML5 is far from a “standard”, and by the estimate of the editor of the HTML5 specification it will only reach the W3C recommendation stage by 2022. Of course browsers have already begun adopting it, and will continue to do so over time.
- Apple began with a small open source project and created WebKit
- By making its WebKit technology open, Apple has set the standard for mobile web browsers.
Apple didn’t make WebKit open, it is something they had to do if they wanted to use it. Since KHTML, which used the LGPL licence was open source, the only way to bundle and improve KHTML as WebKit would be to keep it open. Safari itself is not open source.
Point 2: “full web”
- Adobe has repeatedly said that Apple mobile devices cannot access “the full web” because 75% of video on the web is in Flash.
True, but they have also made the same claim for games and web applications made with Flash, some popular ones include Aviary, and Picnik web image editors.
While it might be true that Mobile phones will not be able to use such websites as is, since they are resource intensive, however this should’t hold true for the iPad. Fact is, the iPad is just an oversized iPhone, and not capable of running such apps. Which is a failing on Apple’s part.
It is true though that a lot of current applications cannot perform well on an iPhone and other mobile devices, and Adobe is in fact creating a new Flex SDK for Mobile devices because the current Flex SDK might not perform adequately. Even with the Flash Player 10.1 on the iPhone it would probably not have access to the “full web” but at least in this case it would be a limitation of the hardware and not software.
- 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.
Most such content is available in H.264 because it is supported by the Flash Player and is superior format to the old VP6. If Flash player did not add support for H.264, few websites would have converted to the format just for the benefit of a few iPhone customers who themselves would likely not be enough incentive.
- Adobe claims Apple devices cannot play Flash games. However there are 50,000 games in the app store.
This sidesteps the whole issue. Sure there are 50,000 games for the iPhone, but this is due to the effort of developers, not of Apple. If Flash were allowed, even via the packager, this number would increase greatly.
Point 3: reliability, security, performance
- Symantec recently highlighted Flash for having one of the worst security records in 2009.
Links Steve links! For an advocate of HTML5, you don’t seem to have basic things like the anchor tag down. In any case, the study being referenced to here, seems to be “Internet Security Threat Report: Volume XV: April 2010” which ironically shows more vulnerabilities in Apple Quicktime (27) than in Adobe Flash (23). Additionally, regarding vulnerabilities Safari (94) was second only to Firefox (169). Safari also had the poorest record when it comes to fixing vulnerabilities with a window of exposure -- the time between an exploit being made public, and a patch being issued by the developer. But this is neither here not there.
- Apple doesn’t want to reduce the vulnerability and security of their devices by adding Flash.
It is clear that Flash isn’t the only problem. Most software have vulnerabilities, and they need to be detected and fixed fast. This is something Apple shouldn’t be preaching to others.
- Flash has not performed well on mobile devices for years now, and Jobs has yet to see it do so.
From the benchmark example above, it seems to compare well enough with HTML5 technologies. Smartphones are getting faster, and Adobe’s move isn’t simply for today. In the coming years who knows how powerful they will become. While smartphones will never be powerful enough to run all the Flash content on the web, it will enable a large portion of it to be accessible.
Point 4: battery life
- Mobile devices need to use hardware decoding of video to conserve battery power.
Sure, and this is something the Flash Player does as well.
- Flash has recently added support for H.264
Flash added support for H.264 over 2 and a half years ago with an update to Flash Player 9, hardly recent.
- Video on most Flash websites uses the older generation codec which is decoded by software
This runs contrary to what Steve says a little while back: “almost all this video is also available in a more modern format, H.264, and viewable on iPhones, iPods and iPads.” If the video is available in H.264 and Flash Player can play H.264, why would the website only be using the older format? YouTube for example, only uses the older format for lower quality video, and uses the modern H.264 format for all HD content.
- H.264 decoded in software drains the iPhone battery in just 5hrs while with hardware decoding it can run for 10 hrs
Sure. This is due to the complex nature of the H.264 encoded content, which is quite hardware intensive. You can’t compare H.264 running on a hardware to H.264 running on software as that is not the discussion here. If Flash uses hardware for H.264 this issue will be sidestepped anyway. The comparison should be between H.264 on hardware and VP6 on software, as that is a possible scenario with Flash. Here VP6 running on software will surely run for much more than 5 hours due to its relative simplicity compared to H.264.
Apple has just recently released the API’s for using hardware acceleration for video content on Mac OSX and Adobe already has a preview version of the Mac OS Flash player ready with support for this new feature, not bad for such a lazy company.
- "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."
What about other browsers? H.264 is not a format specified by HTML5 for the video tag. It is NOT an open specification and is patent encumbered. By using H.264 you are no more open than when using Flash. In fact Apple is one of the licensors of H.264 and any opinion they have on this matter is sure to be biased.
Furthermore H.264 is not supported on the major browsers Firefox and Opera and will likely never be a part of Firefox. Let us see if Apple’s “open” attitude holds when there finally is a video codec recommended by HTML5.
Speaking of Google’s Chrome, it is also the first browser to fully integrate the Flash Player into the browser itself.
Also, the Flash player currently offers many features for web video which are still not possible with HTML5 video, such as streaming and DRM protection.
Point 5: touch
- Flash was designed for PCs using mice, not for touch screens using fingers.
HTML was designed to PCs using mice. Well, guess what, things change. One can create products which offer a new form of interactions, for example a device which is entirely voice controlled. It is then the responsibility of the device manufacturer to ensure that their device works with all current content. They can’t expect everyone else to adopt to the new shiny way of interacting that they have created.
- Many Flash sites rely on rollovers which aren’t possible using touchscreens. Flash website will need to be rewritten to support touch-based devices.
Many HTML rely on rollovers. This point is again simple falsehood, as Flash content with rollovers will work fine with touch screens.
- If you need to rewrite anyway, why not use “modern technologies” such as HTML5...
Firstly, you don’t need to rewrite except for performance concerns. Secondly, even if you need to, HTML5 is not as capable as Flash yet, and porting to it is not a trivial task. The amount of effort on this won’t be worth the few extra iPhone visitors.
Point 6: “the most important reason”
- "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."
Such as iTunes for Windows, right? Why don’t you rewrite that mess to use only Windows APIs and conform to Windows’ UI paradigms?
You don’t need a third-party layer to make a sub-standard application, as is evident by some of the content available on Apple’s App Store. Moreover, if even a single App using a third-party layer has landed on the App Store till now -- and many have done so, and become quite popular -- it means that such applications can indeed be successful.
- “We cannot be at the mercy of a third party deciding if and when they will make our enhancements available to our developers.”
If a third party doesn’t support the latest and best features of the iPhone OS, then developers will have less incentive to use such tools to create their apps, as end users will have less incentive to use such apps.
If people still prefer applications made using these tools, then they are not getting enough value out of your platform’s features. In the end isn’t it about what the end users will like the best? Seems not.
- “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.”
Before pointing fingers at Adobe, port your own iTunes to Cocoa, seriously. Someone said it’s been almost 10 years now since Mac OSX has been shipping.
- “We want to continually enhance the platform so developers can create even more amazing, powerful, fun and useful applications.”
Go ahead. But why not give developers the chance to create applications their own way, and just let the consumers decide which applications are more “amazing, powerful, fun and useful.”
- “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.”
Too many fallacies. There needs to be some kind of award for this. Everybody wins? You sell more devices ‘cause they’re awesome. No doubts there.
Developers reach a wider audience? How? Whether creating a native iPhone application a developer reaches only the iDevices audience. With HTML5 a developer will only reach the small percentage of the web audience which has HTML5 capable browsers. With a Flash application a developer will reach nearly everyone.
As for the “best and broadest” selection of apps on any platform: How do you get a broader selection of applications from limiting ways of creating and publishing applications?
Steve Jobs raises some valid points here, but they seem to be mostly covered up by the verbosity of the FUD added to it. As for Adobe, some of these points are going though everyone’s minds, and Adobe will have to assuage these doubts which people have, even the ones which aren’t true.