Thursday 8 August 2002 — This is 22 years old. Be careful.
The pioneering software giant Edsger W. Dijkstra died this week. His career focused primarily on the process of writing programs, and how to make the process (and the programs) better. He was the type of thinker who could set out on his own course and create an entire field of study in his wake.
He kept a running list of his works over his forty-year career, sequentially numbering everything he thought others might be interested in. Initially, these papers were photocopied and passed along. In a quaint historical touch, even his latest entries are handwritten (and his handwriting was classy enough and widely-enough distributed that it inspired a digital font).
His best-known work is quite short: Go-to Statement Considered Harmful. The impact of this letter was remarkable: in 1968, it wasn’t possible to write programs without GOTOs. An ordinary coder who suggested that you try would have been thought crazy, and if someone had attempted it, it would have been a stunt: the coding equivalent of stuffing twenty college students into a phone booth.
But Dijkstra was right, and now no serious programmer can imagine it any other way. Giant software projects are constructed without a single GOTO. Many programming languages don’t even have the concept. Even the title of his letter is a classic: “{something} Considered Harmful” is a meme unto itself, and has been often-used to evoke the ground-breaking insight of Dijkstra’s work, even if sometimes in jest. (Actually, it turns out that he didn’t write the title: ironically enough, Considered Harmful: The Weblog has the story.)
He wrote many other things over the years. The earliest English entry in his list of work (a review of the IBM 1620 computer) provided this insightful conclusion:
The next fact that we have to face is that this machine, despite of its poor qualities, has been produced, in this case even by a big firm with a long and considerable experience. The straightforward conclusion is, that nor the size nor the experience is a guarantee as far as the quality of the product is concerned. Well, we can think of various explanations for this apparent inconsistency, but the most obvious explanation predicts still more blunders in the more ambitious and more complicated products of the manufacturer in question.
Comments
Add a comment: