Developer Blog

This phrase is a bit of a cliche by now and perhaps miss used too.

Most people attribute it to Donald Knuth (https://en.wikipedia.org/wiki/Donald_Knuth) but actually it was by Tony Hoare (https://en.wikipedia.org/wiki/Tony_Hoare), who worked for a while in Belfast at Queen’s University Belfast. Knuth made the phrase famous in his paper “Structured Programming with GO TO Statements” (http://sbel.wisc.edu/Courses/ME964/Literature/knuthProgramming1974.pdf) when he quotes Hoare.

Knuth wrote this paper in response to E. W. Dijkstra’s (https://en.wikipedia.org/wiki/Edsger_W._Dijkstra) short note “GOTO considered harmful” (https://homepages.cwi.nl/~storm/teaching/reader/Dijkstra68.pdf). While the Dijkstra paper is very short, only one page, and essentially a polemic the Knuth paper is much longer and more reasoned. Knuth discusses when GOTO  is useful and outlined ways languages could evolve to avoid these in the future, a really good example is error handling and he outlines an approach to this which is essentially todays exceptions. One aspect of the paper deals with performance and this is where he introduces the famous quote.

The paper is very playful and is one of the few academic papers I know that quotes Bob Dylan (the other is The Geometry of Innocent Flesh on the Bone: Return-into-libc without Function Calls (on the x86) (https://cseweb.ucsd.edu/~hovav/dist/geometry.pdf))!

Reading this article on ejabberd scalability (https://blog.process-one.net/ejabberd-massive-scalability-1node-2-million-concurrent-users/) made me think of the quote. 2 million concurrent connections and 30K XML encoded ping messages a second. Who says XML processing is slow and you need connection reuse for performance!

Leave a comment

Your email address will not be published. Required fields are marked *