One of my favourite software writers/bloggers is Joel Spolsky: he is thoughtful, funny, and knows how to tell a story. Yesterday he posted a longer-than-usual disquisition on the upcoming web-standards smackdown that will follow on the heels of the release of Internet Explorer 8.
My sympathies tend to fall with the standards purists (though the need to deliver a product forces me to appreciate compromise), I find the elegance of good abstraction irresistible and standards compliant design makes for more stable, comprehensible, editable and elegant sites (from the perspective of the developer, that is: I’m saying nothing about how anything looks to the actual eye…). And there’s a large and vocal community that shares this attitude. The nagging voice of reason, however, (and I am only assuming it is the voice of reason, I haven’t mentioned this to a psychiatric professional) does frequently ask “Is this semantic markup?” The practical distinction between ‘presentation’ and ‘logic’ only looks clear from the periphery; the middle ground is big and grey and muddy.
So, Joel’s remarks on the casual meaning of ‘standards’ when applied to web development are, I think, appropriate, and his story illustrating the history of incremental standards compromise in the service of progress is undeniable (except, perhaps, to a fanatical idealist). His pragmatic arguments that 1) there is no practical web-standard benchmark against which to measure browser compliance, 2) that the expression of standards specifications in W3C documentation are frequently impenetrable, and 3) that Microsoft like any other company has to maintain the good will of their existing customers by supporting legacy products and document formats in new products, are all well argued and substantially acceptable. It is almost enough to make me feel some sympathy for Microsoft. Almost.
Of course, talking about IE is not quite like talking about Word, where the evolution of the document format is bound to the product alone; any web developer will ask why there are so many fewer discrepancies found on a first test of a site architecture between FireFox, Safari, and Opera than between any of these and IE6 (indeed, a measure of the improvement in standards compliance of IE7 is that there may now be more discrepancy between IE6 and IE7 than between IE7 and the other major browsers (maybe)). Surely at least some of the blame for the whole fracas with respect to IE and the rise of web standards fanaticism rests with Microsoft’s historical unwillingness to accept any general standards not of their own making. (Witness ODF vs OOXML as just one example.)
I’ll stop there and leave the flaming for other, more capable participants. In the end, one can’t really disagree with Joel’s point that the demand by compliance fanatics within Microsoft (I know, the very idea of their existence leaves me a little breathless) that IE8 be so rigid in it’s adherence to standards based code that only 37% (or whatever number…) of existing web pages will accurately render is just silly. The plea one wants to make is for the middle path: too much unpredictability in a platform will hinder development and so will too much inflexibility: the question is “how much is too much?”. We complain about caprice in the rendering decisions of various browsers (some more than others), but it is almost certainly a good thing that we are required to reinvent from time to time; the human impulse is to improvise and the best measure of our ingenuity is our capacity to swede the world. (Well, I liked the “be kind, rewind” site so much I had to work it in somewhere.)
There is no logical reason for having a standard other than for the sake of interoperability, and interoperability is usually achieved only when a bunch of warring factions agree to a compromise. In this sense, any standards effort is a bit like radical Athenian democracy. No one gets precisely what they want, but they figure that bad compromises are better than wars and dictatorships.
Problems usually arise because some people regard the occasion for standardization as an occasion for remaking the world into something beautiful. That impulse can sometimes kill a standards effort, or make people violently angry (witness the number of people storming off the R6RS committee for Scheme in the last couple of years), but occasionally, we end up with a sizable body of influential people who regard the standard as Good because the standard is Pure (or Elegant, or Minimalist or Whatever).
Such people, in my opinion, radically misunderstand the purpose of the exercise, and it’s usually what leads to the nonsense we’re about to experience with IE8. There will be many, many otherwise reasonable and intelligent people who will insist on their highly idiosyncratic version of what is right even if it means that we return to the browser wars of the early nineties. Does Microsoft have a point (about backward compatibility, say)? You bet they do! And if this were about interoperability (which it is), we’d find a way.
Unfortunately, I have never seen a group more devoted to purity than the W3C (and the XML community in general). They may get it wrong all the time, but there’s no mistaking the goal. And to prove it, you need only consider the number of “standards” they’ve put forth that represent nothing other than someone’s (possibly failed) vision of a solution to some (possibly misconceived) problem. Topic maps? VRML? These weren’t standards; they were products.
You could say the same thing about XSLT, which, of course, doesn’t really solve any kind of interoperability problem at all, but which instead imposes the rather uncommon vision of a world that is better because it is in XML (and because it pleases CS professors with its functional semantics). Before XSLT came along, I was transforming Web pages with Perl (and later with Ruby, and Java, and various other languages). Other people did it other ways. And here’s the thing: none of us were warring with each other. So what was that about again? Oh, right. The beautiful world.
The W3C likes to portray itself as neutral with respect to the warring factions, but that’s only because they answer to a higher power; namely, their own highly individual notions of what’s right for everyone else.