Tony Hoare, RIP
Professor Charles Anthony Richard Hoare has died at the age of 92. Known to many computer science students as C. A. R. Hoare, and to his friends as Tony, he was not only one of the greatest minds in the history of programming – he also came up with a number of the field’s pithiest quotes.
[…]
In 2024, FACS, the Newsletter of the Formal Aspects of Computing Science, dedicated its July issue [PDF] to a tribute to Hoare for his 90th birthday. We have also seen some very good and touching posts in his memory, including “Commemorating Tony Hoare, Inventor of QuickSort,” and “In Memoriam: Sir Antony Hoare (1934–2026)” by Dag Spicer at the Computer History Museum.
Hoare’s most significant work has been in the following areas: his sorting and selection algorithm (Quicksort and Quickselect), Hoare logic, the formal language communicating sequential processes (CSP) used to specify the interactions between concurrent processes (and implemented in various programming languages such as occam), structuring computer operating systems using the monitor concept, and the axiomatic specification of programming languages.
A story that I was determined to hear from the source was the legendary quicksort 'wager'. The story goes that Tony told his boss at Elliott Brothers Ltd that he knew a faster sorting algorithm than the one that he had just implemented for the company. He was told 'I bet you sixpence you don't!'. Lo and behold, quicksort WAS faster. I asked Tony to tell this story pretty much every time we met, because I enjoyed it so much and it always put a smile on both of our faces. To his credit, Tony never tired of telling me this story 'right from the top'. I had hoped to visit again in the past year and record him telling it so that there was a record, but unfortunately this did not happen. However, I discover that it is indeed recorded elsewhere. One detail I might be able to add is that I asked Tony if indeed the wager was paid out or if it had merely been a figure of speech. He confirmed that indeed he WAS paid the wager (!). A detail of this story that I find particularly reflective of Tony's humble personality is that he went ahead and implemented the slower algorithm he was asked to, while he believed quicksort to be faster, and before chiming in with this belief. It speaks to a professionalism that Tony always carried.
I often think of this passage from his Turing Award lecture:
I gave desperate warnings against the obscurity, the complexity, and overambition of the new design, but my warnings went unheeded. I conclude that there are two ways of constructing a software design: One way is to make it so simple that there are obviously no deficiencies and the other way is to make it so complicated that there are no obvious deficiencies.
The first method is far more difficult. It demands the same skill, devotion, insight, and even inspiration as the discovery of the simple physical laws which underlie the complex phenomena of nature. It also requires a willingness to accept objectives which are limited by physical, logical, and technological constraints, and to accept a compromise when conflicting objectives cannot be met. No committee will ever do this until it is too late.
He is, of course, also known for calling null references a billion-dollar mistake
Previously: