[net.followup] Dijkstra flames

donald (05/09/82)

It's interesting to observe the napalm that is being thrown back and forth
over Dijkstra's seven-year-old (!) remarks.  He seems to have touched a
sore nerve in those self-made "nonmathematical" programmers ("hacks"?)
out there, who almost seem to boast of their lack of mathematics.

I think that by "mathematics" (a word which inflames so many!) the Doctor
does not mean differential calculus and trigonometry, but merely a formal
system of reasoning.  Programming today is a more or less ad hoc process.
A programmer sits down and thinks, the wheels turn, and lo and behold, a
programs spews out.  As the the correctness of that program, God only knows.
By making programming more "mathematical" I think he means formalizing the
process so that we can reason about our programs, similar to the way in
which a mathematician develops theorems.  To you people you consider your-
selves "good" programmers, how often do you find yourself staring at compli-
cated loop construct asking yourself "does this terminate?  will this do
exactly what I want it to do?  will it handle special cases?"  All too often
we just take our code and run it a few times; if it doesn't bomb out, we
consider it correct.  A good programmer is not just someone who writes
code at 1000 lines per hour which is nicely indented and readable and which
seems to work O.K., he should also have developed his program in such a
way that one can reason about it so that it can be shown that it actually
DOES do what it's supposed to do.  This may be hard to swallow for guys
who program by the seat of the pants (which I admit I still do), but
it's high time programming graduated from being an "art" to a "science".
What would you think of a person engaged in designing a skyscaper who
professed to be a "good engineer" but didn't know any mathematics beyond
simple addition?

					Don Chan (utcsrgv!donald)