Dear Steve Jobs: you don't have a clue.
This article is a follow up on 6 reasons why the "HTML5 vs. Flash" debate is idiotic, if you haven't read that article yet, it's strongly recommended that you do.
the sheeple herder has spoken
Today, April 29th 2010, our dearest
dictator ruler decided to publish a pedantic article on why he won't let Flash run on their mobile devices. It's a nice read if you want to take a laugh or two, but at the end if you read between lines he will just self-promote his products based on false premises. I will be analyzing his speech on this post so it's not fully required to read his article first.
at first I was like…
In my recent article I made a lot of things clear so that reading the aforementioned Steve Jobs article will be easier on your feelings. Thankfully, the article also warns people about the weak arguments that HTML5 fundamentalists are trying to push, ignoring every weakness of the spec.
…but then I lol'd
now on to the analysis:
First, there's "Open".
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. While Adobe’s Flash products are widely available, this does not mean they are open, since they are controlled entirely by Adobe and available only from Adobe. By almost any definition, Flash is a closed system.
As for the rest of the components, the VM responsible for interpreting ActionScript is Open Source (Tamarin), and even the Flex SDK goes for free and is Open Source, so there's absolutely no charge for creating SWF content. Zero, gratis.
The only thing that Adobe charges for is the Flash IDE, the one that eases creation of content, the one that no one using HTML5 technologies has yet, and might take a few years until someone creates one comparable to what the Flash IDE allows you to do.
Second, there's the "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. 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.
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.
Yet H.264 is not part of HTML5, or is it? let me clear this for you, H.264 has royalty fees, ones that you are paying when you buy an iProduct but don't really notice, and Apple is the only vendor opposing the adoption of Ogg Theora as a de-facto video format. This article from Ars Technica has a very complete explanation on the points against Ogg Theora that Apple is trying to shove in the face of their users.
About the games, I'm not keeping tabs but the number of Flash games easily dwarfs any number that Steve Jobs can throw. Even if you remove low quality games from both platforms, Flash would still be the clear winner.
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.
Weak argument Mr. Jobs, Adobe has been working hard on Flash and the upcoming 10.1 rewrites history by fixing every problem that previous versions had on the Mac. They even try to use the most advanced rendering mode in Mac OS X, but dictatorial resolutions by Apple avoid third-party applications from accessing the fastest rendering path. Does this ring a bell? oh yeah, the App Store review team can reject your app for using a "pinch to zoom" gesture.
Maybe it's not entirely Adobe's fault. Yes they have they part, but Apple is doing a terrible job at helping them.
Fourth, there’s 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.
Flash 10.1 also uses hardware acceleration for H.264, so this argument is soon to get outdated. But even if the argument was true, isn't the end user the one responsible for deciding which content is right for them? If I want to drain my battery watching some indie video (that was not created in H.264 as it's not open) then I should be able to do it. It's my right as a customer, and as a web user.
There's also a nice article that compares HTML5 and Flash performance for a data graphing application. The results are not surprising: HTML5/Canvas is slower than Flash in many cases, and that translates to higher battery power usage. [another bench here, comparing mostly raw synthetic speed]
Fifth, there’s Touch.
There have been numerous propositions on how to fix the "rollover" issue in Flash for touch devices, yet Steve Jobs won't acknowledge them. The Flash-to-iPhone compiler demonstrated how you can make Flash content without piggybacking on rollovers to deploy an iPhone application that seems like native.
But the most hilarious argument is how Steve Jobs dictates that we rewrite all the Flash content in HTML5, will he pay for it? I bet it's a no.
Sixth, the most important reason.
Besides the fact that Flash is closed and proprietary, has major technical drawbacks, and doesn’t support touch based devices, there is an even more important reason we do not allow Flash on iPhones, iPods and iPads. We have discussed the downsides of using Flash to play video and interactive content from websites, but Adobe also wants developers to adopt Flash to create apps that run on our mobile devices.
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.
Yet developers are at the mercy of Apple and their App Store policy, in which case if an app gets accepted, it might have taken a month to reach end users. Isn't this the same as waiting a month till the middle-ware developer adopts the new features in Apple's SDK? The end user will suffer just the same.
Let's be sincere, Apple doesn't care about developers (see all of the above points), they just care about making money.
Apple wants your money, and native Flash in Safari won't bring them any as people would have access to an immense gallery of free content, tons of nice games that would affect the economy of their App Store.
Apple also wants to kill Flash, so they won't allow you to develop native apps using Flash for arbitrary reasons. They created a closed ecosystem where your only options are to do what they say or GTFO.
Their "open" idea is to control what developers do, in what programming language, and even what APIs or touch gestures they use. By killing the Flash cross-compiler they are also giving the finger to Windows, so developers will still need to buy a Mac to develop for their mobile platform.
What comes next Steve? Wanna dictate the amount of sugar that we put to our coffees while we code?
some interesting arguments on different views of this same subject have been popping during the day, I will be adding these and anything interesting that comes next as they are a good complement to my thoughts on this matter.