Monday, February 27, 2012

HTML5: Dream Come True or Nightmare?

Not all web design and development organizations have seen the HTML5 light yet, and some (seemingly out of ignorance or as a defensive posture) are trying to paint HTML5 as “a nightmare to design for, implement, and support”. Reasons often given for this position are “there is no HTML5 standard yet” and “there are so many different exception cases to handle”.

Do not drink this cool aid. HMTL5 is the best thing to happen to the web in a long, long time. And no, it’s not a completely rosy picture, there are issues and problems. But it’s far better than what we had in the past, by a longshot. Allow me to explain.

From Day 1, the web has been standards-based. Not all of those standards were necessarily great or even sufficient for what people wanted to do. Nor were they ratified in any kind of short time frame; most often, the web standards tended to confirm what web designers/developers and browser vendors were already doing more than setting some new direction for the future.

In the last decade, the web took some interesting turns that were both good and bad. First, the level of experiences that could be delivered really started to improve. Much of that debt goes to proprietary technologies like Flash and Silverlight, which gave us things we simply couldn’t do using only web standards. They served an important purpose, and they should be saluted for it. We also saw the rise of mobile devices, especially in the last few years, and the prominence of native mobile apps. Native mobile apps are great, and yet it bothers many that so many different languages and APIs must be mastered for each mobile platform.

Enter HTML5, fueled by the desire to provide a standards-based lingua franca for web development that can span desktop, tablet, and phone devices without the need for plug-ins. With Apple deciding not to support Flash on the iPhone and iPad, this is now a decision made: proprietary technologies will find fewer and fewer places to run going forward. And since mobile use of the web is outstripping computer use of the web, being able to create web sites that run anywhere and everywhere is a losing proposition unless you’re using HTML5.

I did admit there are some problems with HTML5. There are over 100 standards, most not ratified yet. Vendors can’t come to agreement on a common video or audio format, so you must support several media formats in order to get good coverage. Browsers are not uniformly supporting all HTML5 features yet. Nor can you make your users run a modern browser, for that matter. Yes, working in HTML5 does mean putting in extra work to handle browser compatibility well, which may include implementing fallback behaviors for older browsers. This is not a bad thing, this is what we ought to be doing to provide a good experience for all of our users. Yes, it's  possible some of the standards may change--but we get to play with them now and provide input on their ultimate disposition which is way better than leaving it to a committee.

These difficulties do require attention, but they’re nothing in comparison to the enormous benefits HTML5 gives us. Moreover, you’re not alone in dealing with them. Because HTML5 is open, there’s a worldwide community supporting each other in making it real. The amount of free online sites, open source libraries, and community support for HTML5 is staggering. We have libraries like Modernizr you can use for feature detection. We have shims and polyfills for adding HTML5 behaviors to older browsers. We have sites like to determine which features are available in a user's browser. We have great support for these standards being added by vendors to their tools and platforms, from Adobe to Microsoft. We also have the techniques to match the technology, including Responsive Web Design, Mobile First, and Progressive Enhancement. There’s never been a richer and more fun time to write web software than right now.

Web designers ought to be all over HTML5: you can design incredible compelling experiences now and have them broadly available across more kinds of desktops and devices than ever before. We're getting great new design tools that allow HTML5 and CSS and JavaScript to be handed off to web developers. Modern devices are extremely capable, and modern browsers take advantage of it with hardware acceleration.

I fully understand HTML5 skepticism, I was in that position just a year ago. Take a serious look at it, and you’ll like what you see. Web development organizations should stop viewing HTML5 as an unwelcome disruption to the skills they invested in for the last few years and see it for what it is, an opportunity. Yes it does require a re-alignment of skills. Yes, it's worth it.

No, HTML5 is not a nightmare. Nor is it a dream. It’s reality, and a good one at that.

No comments: