Pondering HTML5

Ok team! What the hell is HTML5? I am under the general impression that HTML5 + Javascript is the web and mobile platform of the future. It’s supported on the iPad as one of the two ways to make an app. Windows 8 apparently will make extensive use of it.

What is HTML5?

From the Wikipedia entry, I gather that HTML5 is two compatible specs, one from the WHATWG group and another from the W3CD. It adds a bunch of new elements and drops old presentational elements like <center>. It also defines the Document Object Model (DOM) and introduces new APIs. Notably:

  • Canvas Immediate Mode drawing
  • Timed media playback
  • Offline storage
  • Document Editing
  • Drag-and-Drop
  • Etc.

There’s also a few new APIs that are not part of either spec, for example:

  • File API
  • Directories and Systems
  • Web Storage
  • Geolocation

HTML5 is apparently a moving target. It’s not a finished spec, but a lot of people are using it anyway. With Microsoft and Apple both using it, I’m guessing that at least some familiarity with HTML5 layout concepts, object types, and the DOM + Javascript is going to be worth knowing.

Looking at the comparison of layout engine compatibility with HTML5, I am getting the picture that this is indeed an application support layer for the web. The support across the major layout engines is still pretty spotty, and I don’t imagine it will be very uniform for the next 3 years. So choosing some working subset of features for now will be important.

Thinking about HTML5 Apps

I don’t think the web application model changes that much. From a practical perspective, HTML5 provides standardization of some APIs now, and introduces the Canvas, Audio, and Video objects. CSS still provides the styling. Javascript still provides the runtime interactivity. There is still a mechanism for storing data on a server and retrieving it asynchronously. HTML5 promises to add things like native databases, geolocation, and other storage options.

It’s tempting to just go back to Flash, but it’s quickly becoming a has-been technology. Sure, there are things you can do with Flash that you couldn’t before, but it’s going to become a specialized solution much in the way that Macromedia Director continues to be. Flash may hang on because of its authoring tools, which make online interactivity accessible to unsophisticated programmers. I like Actionscript, actually, over Javascript, but I don’t feel a compelling reason to keep using Flash.

A few HTML5 links:

I think the biggest win right now with HTML5 might be the use of the new elements which are more broadly supported, such as the VIDEO, CANVAS, and AUDIO tags. Combination with so-called “responsive web design” for all device sizes might be cool too. I picked up ABA’s Responsive Web Design book to get an idea of how this works.

So…using HTML 4.1 Javascript techniques with the working bits of HTML5’s better-defined DOM might be the way to go for now.

To check this assumption, I decided to look into combination of HTML5 + jQuery, and found that actually HTML5 includes Javascript changes that mirror how jQuery works, with new functions and new APIs to handle all kinds of intriguing things. I’m going to head to the bookstore and have a look.