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