TuringAwardLecture: "The Humble Programmer," by EwDijkstra - 1972.
Printed in Classics in Software Engineering Yourdon Press, 1979. ISBN 0917072146
You can read the original paper, shown in CACM 1972 V15 #10, on the internet at http://www.cs.utexas.edu/users/EWD/transcriptions/EWD03xx/EWD340.html
Not to be confused with HumbleProgrammer, a ProgrammerStereotype.
- Those who want really reliable software will discover that they must find a means of avoiding the majority of bugs to start with, and as a result the programming process will become cheaper.
- If you want more effective programmers, you will discover that they should not waste their time debugging - they should not introduce the bugs to start with.
- We should confine ourselves to intellectually manageable programs.
- We must not forget that it is not our business to make programs; it is our business to design classes of computations that will display a desired behaviour.
- It is a usual technique to make a program and then to test it. But: program testing can be a very effective way to show the presence of bugs, but it is hopelessly inadequate for showing their absence.
- The competent programmer is fully aware of the strictly limited size of his own skull; therefore he approaches the programming task in full humility, and among other things he avoids clever tricks like the plague.
- The question: "Can you code this in less symbols?" or, "Guess what it does?" - as if this were of any conceptual relevance!
- As long as machines were the largest item in the budget, the programming profession could get away with its clumsy techniques.
CategoryPaper