Follow me on Twitter for my latest adventures!
I found a great video interview with Edsger Wybe Dijkstra. You have probably heard of Dijkstra's algorithm. He invented it.
In the interview professor Edsger talks about his thoughts on software development. He compares two very different styles of programming - Mozart style of programming vs. Beethoven style of programming. When Mozart started to write, the composition was finished. He wrote manuscript in elegant handwriting in one go. Beethoven was a doubter and a struggler. He started writing before he finished the composition and then glued corrections onto the page. In one place he did it nine times. When they peeled them, the last version proved to be identical to the first one.
From the video one can understand that Edsger preferred Mozart's style of programming. Not just programming, but Mozart style of doing things. He says that the most important thing has been the daily discipline of neatly writing down his thoughts.
His daily discipline lead to hundreds of crystal clear scientific papers, which have now been archived in EWD Archive.
You are welcome to watch interview with Edsger Dijkstra:
At the beginning of video Dijkstra criticizes current software release methodology. He says that version 1.0 of should be the finished product. I don't think he's right. It's like Tannenbaum saying Torvalds that Linux is obsolete. Also see "Release Early, Release Often."
Edsger Dijkstra's quotes from video:
- Computer science is no more about computers than astronomy is about telescopes.
- The competent programmer is fully aware of the limited size of his own skull. He therefore approaches his task in full humility and avoids clever tricks like the plague.
- We should not introduce errors through sloppiness but systematically keep them out.
- Program testing can convincingly show the presence of bugs but it is hopelessly inadequate to show their absence.
- Elegance is not a dispensable luxury but a factor that decides between success and failure.
I found a funny poster of Dijkstra: