Wednesday, October 8, 2008

Wednesday Math, Vol. 42: Edsger Dijkstra

I have already discussed several important characters in the history of computer science, including a couple of geniuses present at the creation, Alan Turing and John Von Neumann, as well as the guy who produced the definitive text so far Donald Knuth, the only mathematician I have discussed whom I've actually met. Today, I want to take some time to talk about the great Dutch mathematician and computer scientist Edsger Dijkstra, whose name graces Dijkstra's Algorithm, the method for finding the shortest distance between any two points on a road map. Besides this very useful and simple method, Dijkstra is also known for several quotes and stories, which I will share here.

My favorite Dijkstra anecdote illustrates how much the world has changed in the past fifty years. Dijkstra got married back in the 1950's, and when he went to get his marriage license, he put down as his profession "computer programmer". The clerk looked at him askance. "Nobody programs computers for a living. What do you really do?" Dijkstra crossed it out and wrote "theoretical physicist", which satisfied the clerk as a real job.

Here are some of his better known quotes about computer science.

Computer Science is no more about computers than astronomy is about telescopes.

The use of COBOL cripples the mind; its teaching should, therefore, be regarded as a criminal offense.

(He was just as keenly against the languages BASIC and Fortran.)

Object-oriented programming is an exceptionally bad idea which could only have originated in California.

(Preach on, professor! I'm right there behind you.)

Program testing can be used to show the presence of bugs, but never to show their absence!

Here's a picture of today's guest of honor. Ain't he a good lookin', tweedy and frankly elitist lookin' son of a gun? When you have someone doin' a difficult job that requires serious trainin', wouldn't you prefer someone who is elite?

Just sayin'.

He was once asked what he would like to be remembered for and this was his answer.

I mean, if 10 years from now, when you are doing something quick and dirty, you suddenly visualize that I am looking over your shoulders and say to yourself "Dijkstra would not have liked this", well, that would be enough immortality for me.

While I have great admiration for Professor Dijkstra, I'm afraid he would shudder at the way I program. Even worse than COBOL or BASIC, I wrote assembly language code for cash, and readability and elegance often take a back seat to getting the job done. When I write a program now, it's in C, and I still have an assembly language programmer's mentality, which isn't so bad when no one else is responsible to fix or alter the program.

But that mentality can be summed up in three short sentences.

Screw readability. To hell with elegance. Let's go fast!


CDP said...

I always learn something here.

ken said...

Love his comment on object oriented programming. Too bad Simula was actually developed in Oslo.

Nothing wrong with having an assembly programmer's mindset, as long as it's not the only tool in your toolbox. Cure yourself by learning something radically different, like ML.

dguzman said...

I like his quote on program testing. It reminds me of the danger of making assumptions based on one's idea of having control of a system (a big theme in Jurassic Park, BTW). Nice work, Matty Boy.