Monday, March 13, 2006

A critical point about standards

Jon Udell asks a key question that cuts to the heart of what standards really are and the relationship between notations and process models.

A standardised notation is a good thing but it can only go so far in specifiying in abstract language the intended processing model of systems consuming the notation.

The "definition of correctness" is an escalator that starts with notation, proceeds up to test suite and from there - more often than not - to reference implementation.

What does it mean for a Python program to be "correct"? Is it in the specs, the test suite or the reference implementation?

Sometimes you just need the specs. /etc/passwd on Unix is too simple to need a processing model or even a test suite probably. What about HTTP Headers?, RTF? XHTML?, ODF?

The reference implementation issue becomes critical when the processing logic gets complex *or* when the definition of correctness transcends the reach of the computer into human-space such as sight or sound. Sight in particular is key. "Does it look right" is not a question that computers are good at answering. This is why, I believe, visual systems like word processors and web browers benefit from reference implementations.

The system fails to be open of course, the moment the reference implementation fails to be open. Regardless of how much XML is sprinkled over it.

No comments: