The devil's advocate argument against paying attention to web standards

March 20, 2011

The IE team famously doesn't pay too much attention to web standards like, oh, XHTML (to give one famous example). As it happens, I think that there's a decent devil's advocate argument for this position (as I've mentioned in passing).

(At this point, I would like to make it utterly plain that I don't agree with what IE has done in terms of standards. That's why this is a devil's advocate position.)

The simple way to put it is that many web standards are not great standards. Exhibit one for this is XHTML itself, which was an unrealistic boondoggle even before Microsoft refused to implement it, but XHTML at least has the advantage of being an obviously flawed standard. Other traditional problems with W3C standards are less obvious but no less problematic; especially with complex or abstruse standards, they may well not be clear, complete, or free of contradictions, and very few standards have a test suite.

Implementing a complex, potentially flawed standard with no test suite is a recipe for problems. The first rule is that anyone can make mistakes, which means that your programmers are perfectly capable of misinterpreting the standard (or coming to a different interpretation than what other people think is the obvious one). With no test suite, you have no good way of discovering this divergence from proper behavior until people start yelling at you for being 'broken'. The larger or more complex the standard, the higher the chances of this happening to you at some point. Potential flaws in the standard compound the issue because now you get to play the 'is this our bug or the standard's bug' game (and winning this game requires you to become a deep expert on the standard).

(Effectively you have no good process for finding bugs in your implementation of the standard, and this guarantees that there will be such bugs.)

If the web standard is an invented standard, dreamed up by a bunch of people in a back room somewhere, it's at least potentially flawed in these ways. Not implementing the 'standard' means that you don't have to deal with all of this and you're not wasting your limited time to develop something that people won't care about in practice.

Hence, if you think that web standards are generally flawed on a mechanical level and not especially necessary or useful on a general level, more or less ignoring them until the level of outrage rises high enough is a perfectly sane reaction. Instead the sensible thing to do is cherry-pick the clear, easy to implement, and useful pieces of each standard without necessarily trying to implement the whole thing. This gets you the useful bits at a relatively low effort, or at least makes sure that you don't waste too much time coding things that people aren't going to use.

Written on 20 March 2011.
« The two sides of (PPPoE) DSL service
Why XHTML was doomed from the beginning »

Page tools: View Source, Add Comment.
Login: Password:
Atom Syndication: Recent Comments.

Last modified: Sun Mar 20 02:40:37 2011
This dinky wiki is brought to you by the Insane Hackers Guild, Python sub-branch.