HTML5 vs Flash take 2: what Steve Jobs doesn't want you to know

April 29th, 2010

Dear Steve Jobs: you don't have a clue.

Important:

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.

Wrong.
As stated in comments of my previous article only the "official" Flash plugin is proprietary, however the specs for running .swf content are open and there's even an open source Flash Player implementation using Javascript+SVG and tons of open source tools for creation and running of SWF content.
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.
[snip]
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.

Flash was designed for PCs using mice, not for touch screens using fingers. For example, many Flash websites rely on “rollovers”, which POP up menus or other elements when the mouse arrow hovers over a specific spot. Apple’s revolutionary multi-touch interface doesn’t use a mouse, and there is no concept of a rollover. Most Flash websites will need to be rewritten to support touch-based devices. If developers need to rewrite their Flash websites, why not use modern technologies like HTML5, CSS and JavaScript?

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.

conclusions

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?

addendum

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.

16 Responses to “HTML5 vs Flash take 2: what Steve Jobs doesn't want you to know”

  1. Brian says:

    All very good points. I am eager to see how this all turns out.

  2. Deleteman says:

    Very nice write-up Gonchuki…

    I have to admit, that even though I do enjoy Apple's products, I never understood why would they ban Flash from them… now reading what Mr. Jobs wrote I have a vage idea of their "oficial" reasons :)
    I completely agree with you, it would all be better if they would just cut the crap and allow flash on their I-products.. oh well, time will tell I guess…

  3. Nuwanda says:

    The answer to the Sixth point doesn't answer the most important part: Most apps developed in Flash will be inferior to an iPhone-native equivalent. And while it's true that a developer might prefer to write a multi-platform app once in Flash rather than spending extra effort porting it to the different platforms, it is understandable that Apple prefers not to have their shiny iPhone not "living to its full potential" because of that.

    Even if the "real reason" for Apple not supporting Flash is that they will earn less money because developers will be able to bypass the App Store by using Flash, their decision is consistent with "the Apple way": to make products that provide the most pleasant and problem-free user experience, at the cost of user freedom. If your freedom is so important to you, then get an Android phone (like I did :-D).

  4. gonchuki says:

    @nuwanda
    If Adobe is doing things right with their cross-compiler, then there's no reason that those apps would be inferior to any native equivalent. If you are a crappy developer (and we have to admit a big percentage of Flash developers fit in this description), you are going to produce awful software with any programming language.
    If you think it twice, porting an app is not the best solution either as you will have to multiply your resources to adapt your changes/fixes to each platform. In the end you will have a code base that is twice the size it should be, twice the developers and twice the number of bugs (bugs that might not be there if the developer had full focus on a single target that can be cross-compiled).
    Sadly it's a lose-lose situation for everyone: users get access to less content, and developers are attached to a 37 page agreement that Apple can change daily if they desire, disable your apps, laugh in your face, and only be liable for up to $50 (see section 14 in page 19 of the agreement).

  5. Bill Mackin says:

    Great article! Loved your previous article as well. Some very good points. Steve seems to be relying on the ignorance of the masses, hopefully articles like yours get some traction and help people see the truth.

    I've written an article myself on the topic, (http://billmackin.com/2010/04/a-response-to-steve-jobs-thoughts-on-flash/). Would love to get your comments.

  6. Björn Nilsson says:

    There is only one flash implementation, closed source , by a sleepy company that has ignored and will continue to ignore minority platforms.

    I would rather implement something in ASCII and telnet rather than in something like that.

    HTML5, it works today. Maybe the project IM building today in it (an advanced game) will have to have som minor tag adjusted in the future, but who cares. The platform wont be obsolete in a few years, like flash. For lagacy there is today graceful degradation teqniques that are easy to implement. Also there is Chrome Frame. You could also just ignore broken implementations like IE, that is perfectly valid today, depending what users you target.

  7. gonchuki says:

    @Bill
    I doubt these articles will get much traction on the "consumer" side as they don't speak our technical language, they just use what the market gives to them, and it's all they care about. My articles are targeted towards developers, to give an objective view of what can each technology do and how it should be used.

    @Björn
    If you read both of my articles, you will easily see that there *are* several options for creating and running Flash content for FREE, and open source too. You can check this page if you are not convinced http://osflash.org/open_source_flash_projects
    A subset of HTML5 works today, and this subset is subject to change until the HTML5 specs become stable. And when they are stable you will probably already be in another project, and your employer will have to pay extra to get his game fixed for the latest specs. If he does not pay, the web gets broken. How's that any better than Flash?

  8. Nuwanda says:

    @gonchuki
    I disagree that Flash apps on the iPhone are not generally bound to be inferior to apps that were specifically developed for the iPhone, for the reason our friend Steve explained: since a Flash app runs on all Flash-supported platforms, it can't possibly take advantage of iPhone-specific features and enhancements.

    Regarding the lose-lose situation, you forgot that Apple is also playing here :P The developer certainly looses. The user gets less but higher-quality apps, so it's not clear whether he wins or loses (depends on the user). And Apple gets to uphold its image, so "he" wins.

  9. gonchuki says:

    @nuwanda
    let me know which one of these apps are inferior to a native alternative: http://labs.adobe.com/technologies/flashcs5/appsfor_iphone/

    remember what I said: if you are a crappy developer, you are going to produce crappy software. Even Apple itself is doing a crappy job with iTunes: it's not a Cocoa app on the Mac, and doesn't use native UI controls on Windows.

    But going back to Flash not using the platform to it's fullest, I have to disagree as all the current targets for Flash 10.1 on mobile share the same set of features: multitouch, gps, camera, microphone… what does the iPhone have that an Android phone hasn't? How do you know if the Flash compiler is not using the iPhone platform in the best possible way? (which it has to, as it cross compiles to native ObjectiveC code). Having an app to sell doesn't mean it's a great app. iFart is a terrible app and doesn't even use 5% of what the platform offers, yet it's one of the most downloaded apps in the store.

    Remember that we are talking specifically about the Flash-to-Mobile compiler here, the Flash IDE always limited what you can or can't do depending on the platform you target (so if you target Flash Lite apps, certain things are not allowed).
    This situation is exactly the same as with the video tag on HTML5 (and Canvas, Javascript, etc), you can only target certain browsers that share the same features. Coincidentally, targeting Flash for mobile devices ends up in a category where all are at the same level and you don't need to "dumb down" your app.

  10. Nuwanda says:

    I thought the cross-compiler allowed ANY Flash app to be compiled for the iPhone. If it's only for "smartphone apps", and all supported smartphones share the same features, then I stand corrected, and I agree with you that there is no reason for the Flash cross-compiled apps to be inferior to apps developed with the Apple suite.

    It's funny (and sad) that I can't use multitouch as an example of an iPhone-only feature because Apple doesn't allow third-party multitouch apps on the App Store XD

  11. Robin Hood says:

    > 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.

    So, are you saying that Flash really does suck on Mac today, but the future will be really really bright?

  12. KevinD says:

    Re: TOUCH

    Everyone ignores the fact that HTML / CSS / JS was _also_ designed for use with a mouse, and HAS THE SAME ROLLOVER AND MOUSE MOVEMENT PROBLEMS as Flash.

    Mobile Safari doesn't know what to do with mouseover or mouseup events, etc. It uses those actions for scrolling instead. It also sucks up doubleclicks to use for zoom. It also has to resort to two-fingers for scrolling divs and textareas.

    Safari does have a workable hack for CSS hover: the first click enables it to show hidden menus, the second click actually clicks. Flash could be made to do similar workarounds. Although of course devices like Android with trackballs don't really need any… they _have_ a mouse.

  13. gonchuki says:

    @Robin Annon
    totally, and we must be rational and attribute the issue to all the parties: Macromedia, Adobe and most importantly: Apple, for giving very poor API support.

  14. mve says:

    I agree, I think Adobe has put in some hard work over the years to really make Flash a usable format. I saw some really cool i-pad type of device running Air as a digital magazine. I think it was Wired if I'm not mistaken. Thanks for the post.

  15. Repository of “Thoughts on Flash” responses and articles | In Flagrante Delicto! says:

    [...] HTML5 vs Flash take 2: what Steve Jobs doesn't want you to know [...]

  16. mj says:

    Ignore the technical details. Apple is denying it's customers (and developers) choice. What is their motive? Do you think it is wise to let a single party make a choice for you? Do you think they will have your best interest in mind? They could have easily turned flash off by default and buried the checkbox to turn it on ten layers deep, but they didn't, they banned its use in their own self interest.

Leave a Comment