Standards For Standards Sake
This post gets nerdy enough that you might want to steer clear. I also don’t go too out of my way to explain the jargon of the subject, so be forewarned.
A few days ago, it was announced that the W3C was discontinuing work on XHTML2, which was planned to be the next big thing for the web; it was going to bring real semantics to the web while improving the extensibility and accessibility of the content on the web. I say ‘the content on the web’ rather than ‘HTML’ because XHTML2 was not going to be HTML. It was not backwards compatible with HTML. In other words, it was doomed to fail.
People saw the faults of the XHTML2 standard years ago and began working on incremental changes to HTML that would improve the semantics — perhaps not as much as XHTML2 could theoretically improve them — of the HTML content and introduce numerous new APIs that enhance what can be done in the browser while retaining backwards compatibility1. These improvements, along with adjustments to the HTML4 spec to align it to reality, are now known as HTML5.
Perhaps XHTML2 would have been better overall, perhaps not. That is a moot point now. HTML5 is happening, and XHTML2 isn’t.
But Shane McCarron, one of the people who worked on XHTML2 and the associated standards, decided to attack everyone he could in a post filled with a bunch of useless arguments.
The primary design principle for [HTML5] is “codify everything in use on the net, everywhere, no matter how broken, as long as Hixie has seen it at least once and thinks it is useful”.
These sorts of meaningless assertions, with an ad hominem thrown in for good measure, contribute nothing to the discussion. I’ve found Ian Hickson’s attitude on the HTML5 mailing list to be very brusque at times, but that has nothing to do with what the standard is about. Not only that, but the HTML5 spec does much more than codify existing behaviour; certainly it does that, but that is because the earlier specs were underspecified resulting in every browser doing things slightly differently.
But beyond this codification, the spec introduces a background process system for JavaScript execution, canvas elements for advanced graphical rendering, the video and audio elements to allow audio and video to be played in the browser without a plugin, with greater control and more openness, and that’s only a subset of the enhancements HTML5 brings. I don’t see how those things, which were specified before any browser implemented any of it, are mere codification of de facto behaviour.
There are between 5 and 15 actual user agent implementors in the world. There are millions of web content authors. How is it that the 15 (I’m feeling magnaminous) are more important than the millions?
This isn’t even the argument from popularity, it’s the argument from potential popularity. I’m a web content author. I wouldn’t want to write the content using the complexities defined in the XHTML2 spec. I was even one of those people that was fooled by the XHTML1 marketing that XML was somehow inherently better than SGML, and I still blanched at the sight of some of the things coming out of the XHTML2 working group.
In fact, of the millions of web content authors, I’m pretty sure that at most 15 (I’m feeling magnanimous) would be willing to work within the XHTML2 environment.
The people writing most websites are, unsurprisingly, writers. And whether they’re technologically savvy or not, the cognitive load that XHTML2, and all its associated extensions, would place on them is an unnecessary burden.
I know that some of the features of XHTML2 are useful for the machine-readability of websites, but you have to measure that against the extra effort required by content producers, text editors, and everything else involved in creating web content, to generate XHTML2 rather than HTML5. Machines will process things faster a month from now, and can use smarter algorithms to detect and discern human generated content. Humans don’t have that luxury.
But Shane doesn’t seem to understand that:
It was [Tim Berners-Lee] who decided to irreparably damage the brand(s) of the W3C by ceding control of the web to the WHATWG. What [was he] thinking? I assume [he was] under pressure from the browser vendors. I assume those 4 out of your ~400 members were saying “hey, we don’t want to implement XML-based semantic web. It’s haaaaaard (insert whine here)”.
I’m not a browser developer, but if I were I wouldn’t mind switching to a purely XML based system like XHTML2. It’s certainly easier to parse than the mess that is (the underspecified) HTML. Except that if I did that, I would no longer be a browser developer. I’d be someone that writes code, designed to behave as a browser, that is used by no-one.
Vendors possibly preferred to extend HTML4 rather than start over with XHTML2 but the difficulty of it would have been only one facet of the issue.
And developers like writing code. A well-defined spec, a text-editor, and a compiler makes many a developer salivate. And computers will always get faster. Those aren’t the blocking points, in my opinion. The thing that killed XHTML2 was the millions of voices crying out for improvements to the web who were at best amused and most often bemused by the complexities of XHTML2.
There are lots of other cheap shots taken throughout that post, but I’ve already shown you the gravest offenses; pointing out each individual baseless attack, accusation, and logical fallacy would only waste my time.
The facts are these. XHTML2 has been in development since before HTML5 was brought up as an idea. HTML5 is now in use in browsers everywhere with more and more of the spec being implemented with every new browser release. XHTML2 probably has a few experimental features that you can play with in Firefox. XHTML2 lost. You can blame that on the vendors for not implementing your ideas, but the fact is your ideas were shit. If they were good, if they were what users wanted, browser vendors would put more effort into implementing them.
HTML5 is not “shackling the web content developers into the tag-soup architecture of the 90′s.” Tag Soup was never about the language, it was about the philosophy. Did C++ shackle C developers into “goto architecture?” HTML5 was about giving web content developers what they actually want, not a bunch of buzzwords and disingenuous attacks. It’s not as if HTML5 is ready for prime-time. IE still doesn’t support most of HTML5, but people are out there experimenting with HTML5 because it’s cool.
XHTML2 is standards for standards sake. Nobody’s using it. Nobody ever will. So let’s all get over it2.
Footnotes
- It does introduce new elements which will not function correctly with an HTML4 browser, but nothing old would be broken. [↩]
- I admit that this is a bit of a departure for me. I’ve been one of the silent (but full-throated) proponents of JavaScript2/ECMAScript 4 over ECMAScript 3.1/ECMAScript 5. But there are distinct differences here. First, ES4 was backwards compatible. Second, ES4 brought demonstrable advances to the JavaScript environment, whereas XHTML2 seems to mostly work towards normalizing the substructure of HTML without offering any inherent advances, only allowable advances. That said, the irony of me being such a staunch attacker of XHTML2 while such a staunch defender of ES4 is not lost on me. And it goes without saying that, at this point, I’ve gotten over the ES4/ES5 schism and am happy to be working towards advancing to ES-Harmony. [↩]