DEV Community

Cover image for Tony Hoare's Fingerprints Are on Every Language You've Ever Used
Dale Biagio
Dale Biagio

Posted on

Tony Hoare's Fingerprints Are on Every Language You've Ever Used

Sir Tony Hoare died on March 5, 2026, at the age of 92. Most developers know him for Quicksort. But after spending a year researching 90 programming languages, I found his influence in places I never expected.


Most obituaries this week will mention Quicksort. They should — he invented it in 1959 at the age of 25, implemented it for a bet with his boss, and two-thirds of a century later it's still one of the fastest general-purpose sorting algorithms in the world. That alone would be a career.

But Quicksort is the tip of the iceberg.

I've spent the past year researching 90 programming languages from 1948 to 2024 for a book I'm writing. And when you trace the lineage of those languages — who influenced whom, what ideas traveled where — Tony Hoare's name keeps appearing in the most unexpected places.

The Billion-Dollar Confession

In 2009, at a QCon conference, Hoare said something remarkable. He called the null reference — which he'd invented in 1965 for ALGOL W — "my billion-dollar mistake."

His reasoning was disarmingly simple: he'd added it "because it was so easy to implement." That one decision, made for convenience over safety, propagated into nearly every programming language that followed. C inherited it. Java inherited it. JavaScript inherited it. Every NullPointerException you've ever cursed at traces back to that moment.

But here's the part most people miss: the confession itself changed the industry.

Rust eliminated null references entirely with its Option<T> type. Swift introduced optionals. Kotlin made non-nullable types the default. These design decisions didn't happen in a vacuum. They happened because a Turing Award winner had the intellectual honesty to stand on a stage and say: I was wrong. Here's what it cost.

Every modern null-safety feature is, in a sense, a response to Hoare's admission. His greatest mistake may have taught us more than most people's greatest achievements.

ALGOL: The Most Influential Language Nobody Writes

Hoare was deeply involved with ALGOL, and this is where his influence on the language family tree gets wide.

He was a member of the IFIP working group that maintained ALGOL 60 and ALGOL 68. He co-designed ALGOL W with Niklaus Wirth as a proposed successor to ALGOL 60. The committee rejected their proposal in favor of what became ALGOL 68 — a decision Hoare and Wirth considered a mistake of complexity over simplicity.

So Wirth took the ideas from ALGOL W and built Pascal.

That matters because of what came next. Pascal influenced Modula-2. Modula-2 influenced Oberon. Meanwhile, ALGOL 60 itself had already shaped the entire C lineage: ALGOL → CPL → BCPL → B → C → C++ → Java → C# → Kotlin. Nearly every curly-brace language you've ever written descends from the language family Hoare helped shape.

He once said of ALGOL 60 that it was "so far ahead of its time, that it was not only an improvement on its predecessors, but also on nearly all its successors."

He was right. And he helped make it so.

Communicating Sequential Processes: The Quiet Revolution

In 1978, Hoare published his paper on Communicating Sequential Processes — CSP. The model treats independent processes as entities that communicate through synchronized message exchanges.

If that sounds familiar, it should. CSP directly influenced:

  • Go — goroutines and channels are an explicit implementation of CSP. Rob Pike has cited Hoare's paper as a foundational influence.
  • Erlang — the actor model that makes Erlang and Elixir so resilient to failure shares deep philosophical roots with CSP.
  • Clojure — Rich Hickey's core.async is built on CSP principles.
  • occam — a language designed explicitly to implement CSP, used in the Transputer parallel computing chips.

Every time you write go func() in Go, or spawn a process in Erlang, or push a message through a channel, you're using an abstraction that Hoare formalized nearly fifty years ago.

The Emperor's Old Clothes

Hoare's 1980 Turing Award lecture, "The Emperor's Old Clothes," is still required reading for anyone who designs systems. In it, he argued against unnecessary complexity — the tendency to add features because we can, not because we should.

His most quoted line:

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.

Forty-six years later, every debate about language complexity — why Go is deliberately simple, why Rust's learning curve is worth it, why Python's "one obvious way to do it" philosophy endures — echoes Hoare's argument.

A Classicist Among Engineers

Here's a detail that might surprise you: Hoare's first degree wasn't in computer science. He studied Classics and Philosophy at Oxford — Latin, Greek, ancient history. He didn't encounter a computer until his postgraduate years, when he learned Autocode on a Ferranti Mercury.

He then went to Moscow State University, where he studied machine translation under Andrey Kolmogorov. It was there, in 1959, that he invented Quicksort while looking for a way to sort words for a translation dictionary.

A classicist, trained in ancient languages, went to Moscow during the Cold War and invented one of the most important algorithms in computing history. You can't make this stuff up.

His background in philosophy and formal logic gave him a perspective that pure engineers often lack — a concern not just with whether code works, but with whether it can be proven to work. Hoare logic, his formal system for reasoning about program correctness, was the foundation for decades of work in formal verification.

The Thread That Runs Through Everything

When I set out to research 90 programming languages, I expected to find a handful of people whose names appeared repeatedly. Kernighan. Ritchie. Wirth. Hopper. Kay.

I didn't expect Hoare to be one of them.

But he is. Quicksort is in every standard library. Null references are in almost every language (and the effort to remove them defines the newest ones). ALGOL's DNA is in every language with block structure. CSP is in every language with channels and goroutines. His arguments about simplicity inform every language design debate that's still raging today.

He didn't just contribute to computer science. He shaped the philosophical framework we use to think about programming languages — what they should look like, what they should guarantee, and where we went wrong.

Sir Tony Hoare, 1934–2026. The fingerprints are everywhere.

Top comments (0)