Saturday, 17 April 2010

HTML5 Coming summer 2022

   Apple’s recent changes to their developer agreement have unleashed a torrent of anger, hate, and divisiveness on the Internet (which, to my knowledge, has never happened before).  To summarize, Apple announced that the only languages that can be used to develop applications for the iPhone are Javascript, C, C++, and Objective C.  This change was seen as a slap in the face to Adobe who was developing a Flash-to-iPhone app converter that would have made it easy to migrate a Flash application to the iPhone.
     Through all of this bitterness, many have argued that Flash is ready for the deadpool – some even cheering its demise.  I disagree.  Actually, I believe just the opposite is true.  Here are 5 reasons why Flash won’t be going away anytime soon.

1. HTML5 is still very immature.

        HTML5 is everyone’s favorite choice as a Flash replacement. Read the comments sections on just about any blog or article about this topic, and HTML5 is often hailed as the greatest thing to happen to computing since Apple “invented” the mouse (with Xerox’s help).  The problem with HTML5 is that it’s still an immature and unfinished platform.  While it’s supported by the very latest versions of Firefox, Safari, and Chrome, it’s not yet fully supported in Internet Explorer (although IE9 will bring support eventually). If most of the browsers on the web don’t yet support HTML5, it’s not a fully supported standard.
       Then consider that even the editor for the HTML5 standard says that it won’t be finalized until 2022, and that it won’t even be in a final draft stage until 2012:
     It is estimated by the editor that HTML5 will reach the W3C Candidate Recommendation stage during 2012. That doesn’t mean you can’t start using it yet, though. Different parts of the specification are at different maturity levels. Some sections are already relatively stable and there are implementations that are already quite close to completion, and those features can be used today (e.g. < canvas >). But other sections are still being actively worked on and changed regularly, or not even written yet.
      The canvas tag is the feature that most people associate with HTML5, but for browsers to simply support that one tag is a far cry from a Flash replacement.  Still lacking are any tools for syncing audio and video, interactive vector graphics, and any kind of development environment.  HTML5 canvas also has no performance optimization.  A recent study showed that unless you’re using Safari on the Mac, Flash performance beats HTML5 every time.
     This isn’t to say that HTML5 is a bad standard, it’s just not yet ready and won’t be for several years.  Even when it is ready, it’s doubtful that it will completely replace Flash.  In the mean time, developers can’t stop and wait for standards to settle before creating new rich applications and animations.

2. HTML5 video is an unresolved issue.
     
Let’s say that you want to replicate in HTML5 the most famous Flash site on the Internet: YouTube. Sorry, you can’t do that – at least not consistently on every browser. That’s because nobody can agree on whether the HTML5 video standard will be H.264 or Ogg Theora.  And unless something seriously changes (probably involving billions of dollars somewhere), this debate isn’t going anywhere.
The problem here is that H.264 is a patented and proprietary algorithm owned by the MPEG group. The royalty structure is currently vague, and there are no guarantees that users (and by users you should not think at yourself but at Opera, Firefox and any other free or open source project that will still have to pay royalties [edited 09.2010])  won’t be forced to pay licensing fees in the future.  However, Apple, Google, and probably Microsoft have licensed H.264 and adopted it for their browsers.

      Which leaves out Firefox.  Firefox’s open source standards prohibit it from incorporating patented standards that are not specifically royalty free.  For that reason, Firefox only supports Ogg Theora for HTML5 video.  Theora was developed as an open video standard that specifically avoided patents.  The trouble with Theora is that guaranteeing it doesn’t infringe on someone’s patent is impossible, and for that reason no one wants to touch it for risk of becoming a litigation target in the future.
      The only ways out of this problem would be for MPEG to freely license H.264 in perpetuity or for someone with deep pockets to really dig into Theora to make sure it’s patent free.  Even if Theora were patent free, it may not be possible to improve on it without infringing on patents.
      That means that video publishers will either continue to distribute their videos in Flash (which is universally supported) or distribute their videos using HTML5 in both H.264 and Theora.  Since Theora is a second encoding, then every video would need to be encoded twice.  That means twice the computing costs and twice the storage costs. YouTube has conspicuously left Firefox off of their HTML5 beta for this very reason.
Flash suddenly seems a lot cheaper and easier for video.

3. Flash 10.1 changes everything.
      Flash is frequently described as buggy and slow.  Actually, it’s buggy everywhere but only slow on the Mac.  Adobe took that criticism to heart and has made a huge number of fixes and changes to Flash 10.1.  It should be faster and more reliable, especially for Mac users.  Anandtech reviewed the beta release and liked what they saw.  You can try it too by downloading the Flash 10.1 beta for yourself from Adobe Labs.
      Which brings me to another issue entirely.  Adobe may have taken forever to put together Flash 10.1 (too long in the opinions of a lot of Mac users), but they still put it together in less time than HTML5 has been in development.  What’s more, as user tastes and requirements change, Adobe can launch new versions of Flash that take advantage of all kinds of exciting new multimedia and design requirements.  HTML5, on the other hand, is a very robust but slow moving standard that won’t be finished until 2022.
    What happens when the world wants 3D video, virtual reality goggles, or brainwave YouTube?  HTML5 will undoubtedly include them at some point, but Flash will get there first.

4. Apple’s ecosystem is growing more rigid and more fragile.
        As Apple tries to either control or monetize more and more of their ecosystem, they also make it more and more rigid and inflexible.  There are two ways this can turn out: Microsoft in the 1990s or Apple in the 1980s.  TechCrunch considered this point with their article Is Steve Jobs Ignoring History, Or Trying To Rewrite It? Microsoft built a dominant position in desktop computing in the 1990s which produced enormous value for them.  Apple, on the other hand, lost this battle in the 1980s.
       Building a tightly controlled ecosystem is a huge challenge over the long-term.  It’s great when customers want your product because you can easily set terms for everyone who develops around it.  If developers want a piece of your big pie, they need to play by your rules.  On the other hand, when market tastes change, a controlled ecosystem makes it much harder for you to adapt. Rigid ecosystems are fragile ecosystems.
It’s very likely that Apple will over time come to view Flash as something that strengthens their platform. Supporting Flash will be an easy way to port applications to the iPhone / iPad when (if) consumers eventually change their tastes.


5. The web is mature, mobile isn’t.

       Mobile computing today is a lot like desktop computing was in 1985.  At that time the players were all there and the winner looked like Apple.  Then they made a series of decisions that looked good at the time but were disastrous in hindsight.  That’s the trouble with being the innovator in a new space – you have to make every decision correctly to stay at the front.  The market is maturing so rapidly that if you fail, someone else will quickly take your spot.  Microsoft took Apple’s desktop leadership spot first with Windows 3.1 and then more firmly with Windows 95.
     The web, on the other hand, is more mature.  It’s been around for over 20 years, and Flash has been around for 14 of them.  That means that standards slip in and out of place much more slowly.  Think about how entrenched IE6 is and how we’re still testing for it.
      Flash is ubiquitous on the web which makes it easy to target for development.  Among web users, Flash is installed on over 95% of computers, and the only reason it’s not more common on mobile is because Adobe hasn’t perfected a low impact version.  I’m betting they’ll figure that out sometime in the next year, and then we’ll find out whether cutting ties with Adobe was a good move or a bad move for Apple.

What do you think?  Sound off below: