Every time your phone finds the fastest route home, a piece of a Dutch physicist’s 1956 idea is running under the hood. Edsger Wybe Dijkstra (1930–2002) is one of the true founders of computer science — the rare figure who gave us both an algorithm you use every day and a way of thinking about programming that still shapes the field. This is his story.
The accidental programmer
Born in Rotterdam in 1930, Dijkstra trained as a theoretical physicist at Leiden. But in the early 1950s he discovered a brand-new profession that barely existed yet — programming — and was so taken with it that he made it his career, becoming, by some accounts, the first professional programmer in the Netherlands. When he married, the registrar reportedly wouldn’t accept “programmer” as an occupation, because it wasn’t recognized as a real job. He wrote down “theoretical physicist” instead.
The 20-minute algorithm
In 1956, while sitting at a café terrace in Amsterdam with his fiancée, Dijkstra worked out — in about twenty minutes, with no pencil or paper — a method for finding the shortest path between two points in a network. He designed it to show off the power of a new computer, and later called its simplicity a happy accident of thinking without the “clutter” of writing things down.
That method is Dijkstra’s algorithm, and it’s everywhere: GPS navigation, internet routing, logistics, games, network protocols. It systematically explores a graph, always expanding the closest unvisited point first, until it reaches the goal — guaranteeing the shortest route. Seventy years later, it’s still one of the first algorithms every computer science student learns.
Declaring war on chaos
Dijkstra’s bigger legacy may be his crusade for correctness and clarity. In 1968 he published a short, now-legendary letter titled “Go To Statement Considered Harmful,” arguing that the unrestricted goto made programs impossible to reason about. It helped ignite the structured programming movement — the idea that code should be built from clean, nested blocks (loops, conditionals, functions) rather than tangled jumps. Nearly every language you use today reflects that victory.
His guiding belief: a program should be something you can prove correct by reasoning, not just something you poke at until it seems to work. As he famously put it, “Program testing can be used to show the presence of bugs, but never to show their absence.”
Taming concurrency
Dijkstra also laid the foundations of concurrent and operating-system design. He invented the semaphore, a primitive for coordinating processes that share resources, and framed the dining philosophers problem — still the classic teaching example for deadlock and resource contention. His work on mutual exclusion and deadlock avoidance (the “banker’s algorithm”) and his THE multiprogramming system shaped how modern operating systems keep many things running at once without stepping on each other. He later pioneered self-stabilization, a cornerstone idea in fault-tolerant distributed systems.
The philosopher of programming
Dijkstra was famous for his style as much as his substance. For decades he circulated hundreds of hand-written manuscripts — the numbered “EWD” notes — on everything from algorithms to the craft of thinking. He prized elegance and simplicity above cleverness: “Simplicity is prerequisite for reliability.” And he had a gift for the provocative one-liner — on whether machines can think, he shrugged: “The question of whether a computer can think is no more interesting than the question of whether a submarine can swim.”
In 1972 he received the Turing Award — computing’s highest honor — for fundamental contributions to programming languages. He spent his later career at the University of Texas at Austin and passed away in 2002.
Why he still matters
It would be easy to file Dijkstra under “history,” but his fingerprints are on the tools you use right now: the routing that finds your path, the structured code in every modern language, the primitives that let your CPU juggle a hundred tasks. More than any single invention, he left the discipline a standard to aim for — that software should be simple, provable, and beautiful. In an era of ever-more-tangled systems, that’s a bar worth remembering.
Edsger W. Dijkstra (1930–2002), Turing Award laureate (1972). Quotes are from his published writings and EWD manuscripts.
Comments
Post a Comment