RIP Sir Charles Antony Richard Hoare (11 January 1934 – 5 March 2026), also known as C. A. R. Hoare, pioneering computer scientist.

His seminal contributions include -
Quicksort
Quickselect
Hoare logic
Null reference
Communicating sequential processes
Structured programming
ALGOL

https://blog.computationalcomplexity.org/2026/03/tony-hoare-1934-2026.html
https://amturing.acm.org/award_winners/hoare_4622167.cfm
https://en.wikipedia.org/wiki/Tony_Hoare
1/n

Some food for thought by C. A. R. Hoare -

The real value of tests is not that they detect bugs in the code but that they detect inadequacies in the methods, concentration, and skills of those who design and produce the code.

Premature optimization is the root of all evil in programming.

In the development of the understanding of complex phenomena, the most powerful tool available to the human intellect is abstraction.

The price of reliability is simplicity.

https://www.youtube.com/watch?v=QUOlyIHmBrM
2/n

Hoare on communicating sequential processes

YouTube

How many of you can quickly sketch out the design of a Quicksort routine?
How many of you have written a Quicksort routine? In what language?
How many of you have worked on extending Quicksort in functionality and performance?
Extra points for using ALGOL!

https://www.cs.ox.ac.uk/files/6226/H2006%20-%20Historic%20Quicksort.pdf
3/n

@AkaSci

\o in Pascal in the 90's

Still don't fully understand it tbh 🤭

🫡RIP🫡

@jfbucas @AkaSci I did it in an Hewlett Packard proprietary language called SPL in the 1980s so it could be called from COBOL programs, which were all using bubble sort before this. Damned if I can remember anything about it.

@AkaSci
I implemented it in Modula-2 with a comparison virtual function as one of the parameters. Other parameters were a source and destination.

So it it could sort any type / structure.

I likely still have the source somewhere.

Anyone who thinks M2 is just an updated Pascal doesn't understand opaque modules, concurrency (in the language), magic types inc array size calls for writing drivers and passing typed procedures as parameters. Or why M2 doesn't allow assignment between anon arrays.

@AkaSci spend three weeks optimizing a Turbo Pascal Quicksort in the late 80s. Lots of variants, and a bit later also in Think Pascal