Skip to main content

Edsger Dijkstra: The Man Who Made Code Elegant

Edsger Dijkstra

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.

Dijkstra shortest path example

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.


🔗 Explore more from Syncster

Comments

Popular posts from this blog

Cursor AI Review: Is the AI Code Editor Worth It?

I've been using Cursor as my main code editor for a while now, and enough people have asked whether it's worth switching to that a proper review felt overdue. Short version: for me, yes — but with caveats. What is Cursor? Cursor is an AI-first code editor built as a fork of VS Code. That means every extension, theme, and keybinding you already use in VS Code works here, but with AI woven directly into the editing experience instead of bolted on as a plugin. It's made by Anysphere and can run models from OpenAI and Anthropic under the hood. What I like Tab completion is uncanny. Cursor predicts your next edit — not just the rest of the line, but the next change across the file. Once you get used to hitting Tab, going back to a plain editor feels slow. The Composer / Agent mode. You describe a change in plain language and it edits multiple files at once, showing you a diff to accept or reject. For refactors and boilerplate, this saves real time. It unde...

MacBook Pro M5 vs M5 Pro: Which One Should You Actually Buy?

Apple's latest 14-inch MacBook Pro comes in two very different flavors: the base M5 and the step-up M5 Pro . On paper they look similar — same gorgeous Liquid Retina XDR display, same design — but under the hood the gap is bigger than the names suggest. Here's a clear, no-hype breakdown, with concrete use cases so you can match the chip to your work. Quick spec comparison Spec M5 M5 Pro CPU 10-core (4 performance + 6 efficiency) Up to 18-core (6 performance + 12 efficiency) GPU 10-core Up to 20-core Neural Engine 16-core 16-core Memory bandwidth 153 GB/s 307 GB/s (roughly double) Unified memory 16 / 24 / 32 GB 24 / 48 / 64 GB Max storage Up to 4 TB SSD Up to 8 TB SSD Battery (video playback) Up to 24 hours Up to 22 hours Media engines Single encode/ProRes engine More encode/ProRes engines (higher configs) What actually changes between them More cores — the M5 Pro nearly doubles CPU cores and adds GPU cores, so sustained, multi-threaded work finishe...

How I used Google Sheets and Apps Script

Google Sheet is one of the most powerful spreadsheet application that exists online, rivaling with Microsoft's Excel. One of the main strengths is its strong support for collaboration with other users, much easier and popular than collaboration tools with Microsoft Office. Aside from plain spreadsheet, it also supports extensions such as macro. If you are familiar with macros on other office tools, they work almost the same. However, the most extension I use and tinker with is the Apps Scipt . Apps Script Extension One of the challenges I faced recently is how do I track or monitor reports in our department if they are submitted on time or worst, forgotten due to lack of better monitoring tools. So I thought if there can be simple applications that can be deployed or use by a more general user to allow reminding periodically what reports are approaching due dates or those that are past dues. Then I looked for a way, instead of creating a full blown app from scratc...