Wednesday, May 6, 2009

The Future is Coming

I have been telling people in my HTML classes for years that one of the cool things about HTML was that it was about the only thing in computerdom that you could learn all of. The reason was that HTML v4.01 was supposed to be the last, final, ultimate edition of the storied language that build the Web. You don't probably use the same word processor, spreadsheet or operating system you used ten years ago, but we are enjoying the same version of HTML and there are no plans for another.

And then someone started making plans.

It never was as true as I was making out, I'll own that. But I was trying to build hope and confidence amongst the beginners. There would be plenty of time to learn about XHTML's development path, later, I figured. Technically, what I was telling them was true: There would be no further developments to HTML. You could start today, learning only one thing a day, and after a year or so you would know as much as anybody could about HTML. The guys who wrote your word processor? They still have jobs and they're hard at work at the next version, but the HTML shop has closed down and everyone has gone home. I used to imagine tumbleweeds blowing through the scene, myself.

Well, about a year and a half ago, word started seeping out that the XHTML2 crew was a dysfunctional family. Lots of arguing, and over some pretty petty differences, really. And it seemed, from what we'd heard of what they were doing, that some of them had kind of lost their way. The whole reason for XHTML was forcing a stricter adherence to standards, with a simpler rule set. A lot of that kind of spirit wasn't making the jump to XHTML2.

About the same time, wouldn't you know, a group got together to discuss HTML5. "No problem", I thought to myself. "The way these things go, this could end up being tied-up for years and years." It turns out I'm not very good at this prognostication business—you should see my stock portfolio—and we could very well have an HTML5 before we have an XHTML2.

So, you're building a Web page template today that will go into widespread use in three months, and remain in active service for at least three years, probably. Three long years. What do you markup your template with? The old workhorse, HTML? You could shine it up a little by adhering to the HTML v4.01 Strict conventions. Or do you go with XHTML because it's been what you've used for the last few years and we just now got everyone used to self-closing tags like <hr />? Or do you peek inside HTML5 and take advantage of the surprising number of elements that modern browsers already know and understand?

Nearly every Web page ever built has had a header area, or a footer, or a navigation block. The last few years, we have designed these with <div> tags, artificial block-level land-grabs that map out an area for a specific use or treatment. But if every page has a structure including headers and footers and navigation, why isn't there a structural element of HTML that does that for us? There is, in HTML5.

Just what we needed this summer, huh? More interesting days.

No comments: