The History, Controversy, and Evolution of the Goto Statement [pdf]
This is an excellent article that sets context for, and summarizes, the “goto debate”.<p>I know modern programmers who have simply absorbed the received wisdom that “goto is terrible” and wonder why there even is&#x2F;was a debate; this short and concise article should show what goto was used for.<p>At the time Dijkstra wrote (the letter that the editor titled) &quot;Go To Statement Considered Harmful&quot;, his proposal would have meant programming in a C-language (of course I know C didn&#x27;t exist then...) <i>without</i> any `break` or `continue` in loops, and without `return` except at the end of a function. There are very few languages today that don&#x27;t have `break` and `continue`, and in them (Lua for instance) `goto` is still used.<p>As the article mentions, it takes much from Knuth&#x27;s wonderful summarization paper “Structured Programming with Go To Statements”, and if you find this interesting you should definitely read it! <a href="https:&#x2F;&#x2F;pic.plover.com&#x2F;knuth-GOTO.pdf" rel="nofollow">https:&#x2F;&#x2F;pic.plover.com&#x2F;knuth-GOTO.pdf</a> (Also reprinted in his book&#x2F;collection titled <i>Literate Programming</i>.)