December 9, 2011

HTML5 Takes on the King of Plugins



Is HTML5 the new kid on the block? Is Flash just an old man telling HTML5 to “get off my lawn”?

Here on this installment of DotNetKicks Jump-In, HTML5 takes on the King of the plugins, Adobe’s Flash. Will HTML5 usurp the throne? Only one way to find out…

Moderators! To your corners!

Carey (CodingBandit):

HTML has a history of evolution, in its original form; HTML only contained support for rudimentary textual content.  As the needs of the user audience matured, things like anchor tags, input controls, colors, font formatting and images were introduced.  When richer user interaction was required, CSS and Scripting were brought in to fill those holes.  HTML5 is simply another stepping stone in HTML history.

Plug-in based controls such as Flash were created to implement user experiences that weren’t possible with HTML 4.  They are a means of filling in a gap of what user’s desire and what HTML 4/CSS/JavaScript had to offer.  Sophisticated vector graphics, animation, and support for audio and video media were the main drivers behind the implementation of the Flash plug-in.

In my opinion, Flash has been a stop-gap measure to HTML5.  HTML5/CSS3/JavaScript also has rich vector graphics, animation, and audio/video media support.

Why HTML5? Reach, Support and Familiarity.

Reach.

While Flash may have large market penetration numbers when it comes to browser support on popular desktop operating systems, this is not the case for mobile phone and tablet support.  In reality, most mobile phone and tablet browsers rarely support plug-ins at all.  The reason for this is the concern over resource usage on the device, such as battery life.  Having the ability to run plug-ins on these devices places a large amount of trust into the plug-in vendor code.  Obviously desktop machine resources are plentiful, whereas with tablets and mobile phones, resources are more of a commodity.  To err on the safe side of things, phone and tablet vendors prefer to allow only native implementations of code running on their devices over supporting plug-ins.  As a result, mobile and tablet vendors are rallying behind the adoption of HTML5 on their platforms [http://mobilehtml5.org]. They are simply adding support for HTML5 in their native browsers.

Support.

HTML5 is being promoted as “all-in” by Apple and Microsoft (among others).  Apple has made it clear that it does not intend on supporting Flash on the iPad, iPod and iPhone [http://www.apple.com/hotnews/thoughts-on-flash/], and Microsoft has publicly announced that the flash plug-in does not work in the Metro (tablet) version of Internet Explorer 10 available in early previews of Windows 8.  Microsoft has announced that HTML5, CSS3 and JavaScript are first-class citizens for creating native Metro (tablet) applications on top of WinRT.  These are all compelling reasons to jump on the HTML5 bandwagon.

Familiarity.

An HTML form is the most popular way to gather information from users on the web today.  This will continue on with HTML5, it will support existing input controls while adding new ones to the mix.  The familiar document formatting will also continue on and be improved.  CSS and JavaScript support will also be augmented with shiny new-ness.  Rest assured that your existing skills in all these technologies will carry over into the world of HTML5.

In conclusion, another benefit to HTML5 is that it is controlled by committee.  Flash is not an open standard, it is solely controlled by Adobe.

Drew:

Adobe’s Flash technology is almost as ubiquitous as the web browsers that play host to it. Flash has been a long-time participant on the multimedia and interactive front of the world-wide-web, claiming 98% penetration as of March, 2010. The latest version of the Flash player runs on all major desktop operating systems as well as mobile and embedded systems such as Android, RIM QNX (Blackberry Playbook), Google TV, the Playstation 3, and the PSP. There is also a lite version of the flash player which runs on the Wii, Symbian OS, Maemo Linux, Windows Mobile, and the Chumby. That’s quite an impressive pedigree, especially considering how competitive and fast-moving web technology is.

So why is it then that Flash remains king-of-the-hill? While Flash has many strengths, the driving force behind its widespread use sprung from how easy it is for anyone, amateur and professional alike, to get up and running in Flash. Most interactive or multimedia applications in Flash require very little programming, yet the tools Adobe provides put up no barriers should developers wish to create more complicated applications. The Actionscript language used in Flash applications has a simple syntax, and includes many powerful features. The combination of a simple GUI for dealing with scenes and artistic assets, coupled tightly with an event-driven development work flow, allow designers to work closely with programmers during development.

So what of the competition then? Lately, large waves have been made in the community over HTML5. HTML5 is backed by large corporate players, a standards committee, and a technology that is the foundation of the web. It includes support for advanced multimedia without the need for third-party plugins such as Flash. Via the combination of HTML5, CSS3, and Javascript, interactive applications that rival those created using Flash are now possible. I’m personally behind HTML5, but why is it then that I’m supporting Flash in this instance?

My argument against HTML5 in its current state comes down to support and market fragmentation. HTML5 is currently a working draft. It’s susceptible to change at any time and is incomplete. In fact, Ian Hickson, a maintainer of the HTML5 specification, has state that HTML5 would not be a published standard until 2022. Whether that is hyperbole or not remains to be seen, but given the state of HTML5 support amongst vendors I wouldn’t be surprised if it turned out to be true. If I were building  a large scale interactive application on HTML5, I would be very concerned when hearing statements like that.

I mentioned market fragmentation being an issue for HTML5. We seem to be approaching an impasse in the world of web standards. With long-time holdouts such as Microsoft finally taking standards seriously and producing browsers capable of passing an ACID test without spewing all over the screen, one would think that betting on a future HTML standard would be the way to go. Except a new kind of vendor lock-in is starting to pop up now. With HTML5 being an unfinished draft, vendors are left to interpret and implement certain features in their own way. This behavior is even more rampant when it comes to CSS3 support, a key piece of what allows HTML5 to be used for interactive applications. Dozens of CSS3 properties are implemented as if they were proprietary extensions, littering our style-sheets with “webkit-” and “moz-” prefixes, in addition to the “official” attributes. This sort of behavior cannot be good for maintainability, and makes it much more difficult to provide a standard experience across browser platforms.

Flash suffers from neither of these issues, and that alone gives it a big leg up over any competition. I’m rooting for HTML5, but until such time that it becomes a stable platform, I’ll continue to recommend Flash.

No comments:

Post a Comment