Edsger W. Dijkstra (if you’re curious about the right way to pronounce his name,
look no further) was a Dutch computer scientist, one of the most influential figures of this field.
Mentioning and explaining all of his achievements on this issue is incompatible with the goal of the newsletter, which was conceived to be short and to the point. There are just too many!
Both as an engineer and a theorist, Dijkstra was pivotal in shaping Computer Science as a discipline. His contributions were broad and cover compiler construction, operating systems, distributed systems, sequential and concurrent programming, programming paradigms and methodology, programming language research, program design, development and verification, software engineering principles, graph algorithms, and philosophical foundations of computer programming and computer science. New research areas stemmed from some of his papers, and several concepts and problems that are now common place in computer science were first identified by Dijkstra.
You see, until the mid-1960s computer programming was seen more as an art rather than a scientific discipline. Dijkstra was one of the few academics who advocated a new programming style to improve the quality of programs, introducing the term “
structured programming”. His ideas helped lay the foundations for the birth and development of the professional discipline of
software engineering, enabling programmers to organise and manage increasingly complex software projects.
“
The revolution in views of programming started by Dijkstra’s iconoclasm led to a movement known as structured programming, which advocated a systematic, rational approach to program construction. Structured programming is the basis for all that has been done since in programming methodology, including object-oriented programming.” —
Bertrand Meyer in 2009
If you studied computer science or computer engineering, you’re most likely to hear his name in the
namesake algorithm, created in 1956. The original version finds the shortest path between two given nodes, but many variants exist. Simply put, for a given origin node in a
graph, the algorithm finds the shortest path between that node and every other. Knowing the right variables (or costs) of the graph in question, this algorithm helps with finding the most efficient path from A to B — you can apply this in city traversals, tracks of electricity lines, oil pipelines, and many other movements.
Dijkstra accumulated
many awards during his lifetime, even having a
prize renamed in his honour. Symposium on Principles of Distributed Computing (
PODC) says it clearly: “
No other individual has had a larger influence on research in principles of distributed computing.”
Further reading
During his career, Dijkstra published
many technical books spanning many fields, if you’re interested in researching his work further. Also, while researching for this issue, I came across an
actual researcher that accumulated an invaluable trove of Dijkstra paraphernalia — photos, diaries, his college books… even his chair!