Andrew says: Check out the delightful Edsger W. Dijkstra Archives, maintained by the University of Texas. As one of the foremost computer scientists of his generation, Dijkstra argued that programming is more a branch of mathematics than engineering. The archive is largely a collection of his handwritten notes, and range from elegant geometrical proofs to a rant about his trip to Harvard Law School. One of my favorites is his withering Answers to questions from students of Software Engineering.

Comments (5)
Just as an FYI: Dijkstra began writing his EWD series on a typewriter, but fortunately for us, changed to his delightful handwriting around 1980 or so - those handwritten ones are highly recommended, as the beauty of the appearance matches the beauty of the content.
His papers were originally scanned as PDFs, but are being transcribed into plain HTML so they're searchable.
And if you like his handwriting, Luca Cardelli has a font of it here: http://lucacardelli.name/Fonts.htm.
Posted by Eric | August 10, 2007 7:54 AM
It is not the business of computing science to promote "computerization", say by developing demanding applications so as to create a market for the next generation of hardware.
[Medical researchers are not required to develop new diseases so as to create a market for more pharmaceutical products.]
Not necessarily true these days of the pharma. industry. We now have all kinds of new treatable "disorders"
Posted by David Turanski | August 10, 2007 12:13 PM
Sound Bites Considered Harmful
Dijkstra probably isn't at fault. But "go to's are harmful" sent misleading messages and promoted terrible damage.
The trouble is that the sound bites became gospel, and many had no clue what they really meant. For example, replacing a "goto" with a global state variable does not, in any way shape or form, improve readability. I've met many with the go-to prejudice who seemed incapable of learning this lesson. The real lesson has to do with costs.
The sound bite came out of spaghetti go-to code, maybe from Fortran 66, or some such. Three go-to's in a function CAN be unreadable, but exiting a double nested for loop when it finds something in a language that lacks the proper break syntax isn't going to hurt anything. I've even run into some who say "go-to's are forbidden", even in machine language. No, really. Yes, i know, block structured machine language is possible, even helpful, with decent conventions or macro help.
Posted by Stephen | August 10, 2007 3:11 PM
Stephen:
I agree that sound-bites can be harmful, but there's a funny thing about human communication. Complex messages don't carry as well as simple messages. I call this "social signal loss."
It's really unfortunate. You can have a message go a long way, but it has to be simple and powerful, and of course, people are going to misinterpret it, or you can have a complex message that may not carry as far and is lossy all the same.
I know of a number of things that I'd like to say publicly that are too nuanced to carry and too easily abused or misunderstood when they are simplified. We're wired rather strangely.
Posted by Michael Feathers | August 10, 2007 3:26 PM
Hi.
It wasn't the Go To Statement Considered Harmful article which caused damage; to the extent that it did cause damage, it is probably due to the fact that most people didn't read it and simply took the title and interpreted it to be useful in supporting their biases. I find this is common in our industry - I mentioned it in a blog I wrote a while ago.
Dijkstra's reasoning in the article is (as usual) flawless and the intent is explicit. I don't think anyone who reads it could think that a global state variable is an acceptable replacement
Posted by Lance Walton | August 17, 2007 2:06 PM