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.)