>>>
Dijkstra was more interested in
whether you could prove that your
program behaved according to its specification. Whether your
program worked every time you ran it was less important than
whether it could conceivably fail.
Don't forget that you couldn't meet his definition of programmer
without being a mathematician.
It's apples and oranges, I think.
<<<<
At one of his conference lectures on this subject I asked him:
(this is undoubtedly a tidied-up form ... it must have been more than 30
years ago)
OK, so you prove that your program matches the specification. Haven't you
just pushed the problem back onto the correctness of the specification?
(a very cautious agreement)
But then how do you prove the specification to be accurate to the real-world
problem and what do you do when it changes?
You don't accept the specification unless it is accurate and if it changes
you start again. (and a quick move on to someone else's question)
- - -
To be fair, he was an interesting lecturer and when you read some of his
earlier works you can see why his earlier experience using a much less
formal style encouraged him towards his later views.
"* You are not expected to understand this." Unix V6 source
" you are advised in your own best interests not to modify the following
code without contacting ..." George 1/2 source (has someone got a copy of
this so I can remind myself of the details?)