Waving the Standard


Okay, Netscape punks. This page is now compliant with the HTML 4.0 (transitional) standard. I even put in the fricking DOCTYPE declaration for you SGML weenies. [I can't yet vouch for all the pages on the site, but notebook.html is definitely 100% kosher, and I'll fix other non-compliance issues as I find them]. If this page still crashes your browser, it's your browser-maker's fault, not mine. See this link for a fuller explanation (and sob story). I invite you Netscape 4.x users to take the issue up with Netscape, not with me. Or, go one better and get a real browser, like IE, Opera, or, best of all, lynx.

Deep down, I'm a pragmatic opportunist about computer standards. Collectively, we have an interest in standards, but also in there being a certain level of ferment. Sometimes these standards come from standards-making bodies, sometimes from one player with enough clout, sometimes it's just the last of the dragon's teeth left standing. And it's not like any of these sources is morally pure or possessed of a deeper truth. "Independent" standards boards, in particular, exhibit all sorts of fun pathologies -- zealotry run amok, large corporate participant-saboteurs, unbelievable infighting, tilting at windmills. To parody Churchill, I'd call standards-making bodies the worst form of technological decision-making with the exception of all the rest -- except that I don't see them as much different from all the rest.

That said, there are times when standards bodies do the right thing. With only a couple of minor exceptions (the object model is a bit screwy, and the handling of attributes is decidely non-uniform, and a few other nits like these), the XML spec is pretty high-quality, and certainly the IETF has gotten a whole lot of the hardware and protocol standards right enough to make this whole Internet thingo work, more or less. But, more importantly from my callously pragmatic point of view, having a standard is a pretty nice way of passing the buck when you just get too tired and frustrated to deal. And this is one of those cases.

Standard or no, even, HTML is built around a can-do philosophy: the browser should always keep trying to recover from whatever crappy HTML input it's handed. Whatever minimal sense it can make of the page, it should make, and render. This kind of resilience in the face of sloppy coding is what made the Web, is what made it possible for so many of us to learn HTML by experimentation -- the results might be a bit strange, but it was impossible to screw things up too badly. That's how I learned, and God bless Netscape for its forgiving nature back when we still referred to it as a "mosaic program." The fundamental point is that browsers are supposed to render what they understand, and ignore what they don't, and when CSS came along, Netscape took that rule out to the barn and did unspeakable things to it. Worse still, Netscape's different versions, especially across OS'es, choke in subtly different ways -- I've gotten this site to work under a couple of different releases, including, at times, various Win98, Mac, and FreeBSD isotopes, and it's never the same problem twice. In my software developer shoes, I probably ought to care the full range of configurations viewers might be using. But guess what? Those shoes aren't the hat I'm wearing when I write for the Lab, and I get my fill of debugging during the day.

No more, thanks. I'm driving.