November 12, 2004

Standards vexation

Scot, flummoxed by a problem with Firefox's strict standards requirements, posted asking for help. I had none to give, at least none of the practical variety, but it gave rise to a pertinent general question: Are software standards good for us? This question leads to another, even more troubling one: Are they even possible?

My answer to the first question is a qualified "no". The problem with strict standards is that anything that fails them doesn't work, period. A strict standard precludes the possibility of "failing gracefully", i.e., failing to render a particular element, but doing so in such a way that the user's experience isn't entirely ruined.

The second problem is that software changes too quickly to adhere to a single standard. Constant development of new possible elements quickly exceeds the bounds of even the most abstract, generalized formal system of standards. The goal of the standard -- that you can have code that will run flawlessly on different environments without human maintenance -- falls prey to the progress imperative. There will always be a new version of a must-have browser which contains features not covered in the standard, and then thousands of programmers must update their old code to conform and exploit the new feature set.

Jaron Lanier, in his One Half a Manifesto, muses about the nightmare scenario of artificially intelligent computers run amok, to the point where they supersede humanity and render (organic) intelligence obsolete. Such a "technological singularity" event presupposes global interoperability of these computers: i.e., they would have to have perfect communication with one another on the basis of some standard. Lanier argues such a singularity is impossible, because

There is no giant monolithic electronic brain being created with biological knowledge. There is instead a fractured mess of data and modeling fiefdoms. The medium for biological data transfer will continue to be sleep-deprived individual human researchers until some fabled future time when we know how to make software that is good at bridging bubbles on its own.

Unless the standard can bridge its own bubbles, to cope with and correctly dispatch flawed syntax, the many "modeling fiefdoms" will always impose their heterogeneity. And a standard that is able to generatively correct for errors would have all the important traits of that which currently handles the corrections: the human mind. Thus we should be grateful that the standards are not yet globally perfect and self-correcting: for as soon as they become so, we're out of a job.

Posted by Chris at November 12, 2004 01:24 PM
Comments