Find me @

Thursday, April 21, 2011

HTML5

The sense I get across the Internet today is if you're not developing in HTML5 you're doing it wrong. Let me go into why HTML5 bugs me. As of today HTML5 is an incomplete specification (spec) and people are using it to label a bunch of web technologies and paradigms that have nothing to do with the spec. Much like Tim O'Reilly's Web 2.0 label, it’s a concept. HTML5 is more of the same HTML and JavaScript experience we've always had; browser and platform inconsistencies. The major browser players can't even make up their mind on the video tag. Do I expect them to get the CSS3 or Ecma spec right? I don't because the specs are ambiguous and give too much room for different interpretations by the browser vendors. What about the idolized Acid browser tests you might be asking. Acid (Opera) and IE Test Center (Microsoft) are vendor driven tests to try push their interpretation of the spec upon the rest of the world.

Today's browser war is no different than it was 15 years ago and I don't see HTML5 or the future being any different. I still have to code and test on at least three different browsers and at least two or three different versions of said browsers. Although now days we have wonderful web technology abstractions that hide a lot of this vender specific and JavaScript ugliness. Projects like jQuery, Ext JS, Prototype, and MooTools do a wonderful job making sure the code we write works on a variety of platforms and versions.

The problem with these abstraction frameworks is the same reason they exist, get you away from the browser specific features. Are browser or platform specific features bad? If they are, then why do browser vendors invent them and why do we use them? Web sites coded for specific browsers work better than on other browsers. Try dropping an attachment on a new email message in Gmail using Chrome. Works like a native application. Cool. Try again using IE9. Oops, can't do. Microsoft at Mix11 spent a good part of the first day keynote showing how much better graphic acceleration than anyone else when you ran IE9 on Windows instead of Chrome. The new fishbowl benchmark. Google's properties act awesome with Chrome. IE integrates fantastically with Windows.

I am not against HTML5. As a developer you have a plethora of development platforms to choose from. HTML5 is just another in your tool belt. It is not the end all platform that will fix all your cross platform development woes. Every time I start a new project I make sure to repeat this line to myself. Technology does not drive my app, my app drives the technology I use. For some apps HTML5 with jQuery will be more than enough. In other cases Silverlight and Flex might work. Other's might need deep platform integration so you might use WPF. It's hard to not chase the shiny squirrel and adopt the latest technology craze but you have to think what is best for your app, your company and most importantly your potential customer or user.

No comments:

Post a Comment