Search This Blog

Friday, January 4, 2008

Spolsky (and Usdin and Piez) on Specs

Joel Spolsky [...] has an interesting riff on specifications and their
discontents, which feels relevant to the perennial topics of improving
the quality of W3C (and other) specs, and of the possible uses of
formalization in that endeavor. Excerpt (from the Talk at Yale): "the
hard-core geeks tend to give up on all kinds of useful measures of
quality, and basically they get left with the only one they can prove
mechanically, which is, does the program behave according to specification.
And so we get a very narrow, geeky definition of quality: how closely
does the program correspond to the spec. Does it produce the defined
outputs given the defined inputs. The problem, here, is very fundamental.
In order to mechanically prove that a program corresponds to some spec,
the spec itself needs to be extremely detailed. In fact the spec has
to define everything about the program, otherwise, nothing can be proven
automatically and mechanically. Now, if the spec does define everything
about how the program is going to behave, then, lo and behold, it
contains all the information necessary to generate the program! And now
certain geeks go off to a very dark place where they start thinking about
automatically compiling specs into programs, and they start to think that
they've just invented a way to program computers without programming.
Now, this is the software engineering equivalent of a perpetual motion
machine." [... Sperberg-McQueen:] "In their XML 2007 talk on 'Separating
Mapping from Coding in Transformation Tasks', Tommie Usdin and Wendell
Piez talk about the utility of separating the specification of an
XML-to-XML transform ('mapping') from its implementation ('coding'),
and provide a lapidary argument against one common way of trying to
make a specification more precise: 'Code-like prose is hard to read.'
Has there ever been a more concise diagnosis of many reader's problems
with the XML Schema spec? I am torn between the pleasure of insight and
the feeling that my knuckles have just been rapped, really hard.
[Deep breath.] Thank you, ma'am, may I have another?"

No comments: