Edsger Dijkstra wrote a Letter to the Editor of Communications in 1968, criticizing the excessive use of the go to statement in programming languages. Instead, he encouraged his fellow computer scientists to consider structured programming. The letter, originally entitled “A Case Against the Goto Statement,” was published in the March 1968 issue under the headline “Go To Statement Considered Harmful.” It would become the most legendary CACM “Letter” of all time; “Considered Harmful” would develop into an iconic catch-all. Dijkstra’s comments sparked an editorial debate that spanned these pages for over 20 years. In honor of the occasion, we republish here the original letter that started it all. Editor: For a number of years I have been familiar with the observation that the quality of programmers is a decreasing function of the density of go to statements in the programs they produce. More recently I discovered why the use of the go to statement has such disastrous effects, and I became convinced that the go to statement should be abolished from all “higher level” programming languages (i.e. everything except, perhaps, plain machine code). At that time I did not attach too much importance to this discovery; I now submit my considerations for publication because in very recent discussions in which the subject turned up, I have been urged to do so. My first remark is that, although the programmer’s activity ends when he has constructed a correct program, the process taking place under control of his program is the true subject matter of his activity, for it is this process that has to accomplish the desired effect; it is this process that in its dynamic behavior has to satisfy the desired specifications. Yet, once the program has been made, the “making” of the corresponding process is delegated to the machine. My second remark is that our intellectual powers are rather geared to master static relations and that
References: 1. Wirth, Niklaus, and Hoare, C.A.R. A contribution to the development of ALGOL. Comm. ACM 9 (June 1966), 413–432. 2. Bohn, Corrado, and Jacopini, Guiseppe. Flow Diagrams, Turing machines and languages with only two formation rules. Comm. ACM 9 (May 1966) 366–371. Coming Next Month in COMMUNICATIONS Alternate Reality Gaming IT Diffusion in Developing Countries Are People Biased in their Use of Search Engines? The Factors that Affect Knowledge-Sharing Behavior Alternative Scenarios to the “Banner” Years Municipal Broadband Wireless Networks The Myths and Truths about Wireless Security Managing Large Collections of Data Mining Models Women and Men in IT: Alike or Different? EDSGER W. DIJKSTRA Technological University Eindhoven, The Netherlands Communications of the ACM March 1968, Vol. 11, No. 3, pg 147 COMMUNICATIONS OF THE ACM January 2008/Vol. 51, No. 1 9