Edsger Wybe Dijkstra

2 minute read

Published:

Edsger Wybe Dijkstra was one of the people who helped turn programming from a practical craft into a serious intellectual discipline. He was born in Rotterdam in 1930. His parents were both highly educated, and Dijkstra initially studied theoretical physics at Leiden University.

Edsger Dijkstra

While still a student, he began working as a programmer at the Mathematical Centre in Amsterdam in 1952. At the time, programming was so new that it was not yet a normal profession. Dijkstra later joked that when he wanted to record “programmer” as his profession, the authorities did not consider it a proper occupation. His work quickly became important.

In 1956, while thinking about how to find the shortest route between cities, he developed what we now call Dijkstra’s shortest-path algorithm. The algorithm became one of the classic ideas in graph theory and computer science.

He also worked with Jaap Zonneveld on an early compiler for ALGOL 60. Later, Dijkstra made major contributions to concurrent programming. His work on mutual exclusion, semaphores, and synchronization helped programmers reason about several processes sharing resources. Dijkstra became a professor at Eindhoven University of Technology in 1962.

In the late 1960s, he became one of the strongest voices for structured programming. His famous letter “Go To Statement Considered Harmful” argued that uncontrolled jumps made programs much harder to understand and prove correct.

The title became famous, but the larger idea mattered more. Programs should be written so human beings can reason about them. Dijkstra received the ACM Turing Award in 1972.

From 1973 to 1984, he worked as a research fellow for Burroughs Corporation while remaining in the Netherlands. In 1984, he joined the University of Texas at Austin, where he stayed until retirement.

One unusual part of his legacy is the collection of handwritten documents known as EWDs. Dijkstra wrote technical notes, arguments, and reflections by hand, copied them, and shared them with colleagues.

He cared deeply about clarity. His writing could be sharp and sometimes severe, but it came from a belief that computing deserved mathematical discipline. Dijkstra died in 2002. I still find his work interesting because many of his questions remain alive. How do we make software easier to reason about?

How do we control complexity? How do we write programs for people, not only machines? Computers have changed enormously since Dijkstra began programming. Those questions have not.