Edsger Dijkstra carried computer science on his shoulders (2020)
Edsger Dijkstra’s outsized influence on computer science prompts reflection on how his ideas shaped modern programming and pedagogy. Commenters highlight his role in popularizing structured programming and reasoning about program correctness, while revisiting his famous critiques of GOTO, COBOL, and object-oriented programming in light of today’s languages and practices. Alongside technical debates, many recall his exacting standards, distinctive working habits, and sharp aphorisms, weighing whether his rigor and abrasiveness ultimately helped or hindered the field.
Scope of Dijkstra’s Influence
- Many commenters say they immediately associated the title with him and see him as a central figure in CS, akin to historic giants in mathematics.
- Contributions highlighted: shortest-path algorithm, semaphores, structured programming, influence on teaching/program reasoning.
- Some push back on the title’s grandeur, arguing he was one of several key figures, not “the” person who carried CS.
Structured Programming, GOTO, and Correctness
- Discussion of his advocacy for structured control flow and “single entry, single exit” blocks.
- Critics note single-exit can force convoluted code and conflicts with common “guard clause” style and early returns.
- Others stress the goal was human comprehensibility and easier reasoning, not formal correctness guarantees.
- GOTO is debated: unrestricted versions seen as harmful for reasoning; constrained forms (break/continue/goto/longjmp) are viewed as manageable but still risky.
Programming Paradigms: FP vs OOP and Beyond
- Some link his anti-GOTO stance to modern functional styles (no early exits, recursion, TCO).
- Debate on why functional languages are niche: one commenter blames their “convoluted” style, others challenge that and emphasize their strong type systems and performance.
- Long thread on OOP:
- Critiques: tight data/behavior coupling; fragile class hierarchies; difficulty evolving systems; “design pattern hell.”
- Defenses: OOP as one useful tool, strong typing and encapsulation as benefits; composition-over-inheritance as common practice.
- Several note that many “OOP” benefits (composition, interfaces) are not unique to OOP.
Quotes, Philosophy, and Culture
- Many favorite quotes shared, both admired and criticized: on COBOL, OOP, line counts, thinking machines, abstraction, and “CS vs computers.”
- Submarine/“can machines think” quote sparks debate about anthropomorphism, linguistic precision, and practical relevance of such questions.
- Some see his sharp style as refreshing and motivating; others see it as emblematic of an arrogant, exclusionary culture that harms the field.
Personality, Working Style, and Anecdotes
- Portrayed as intensely careful and slow writer (single, near-final drafts; ~3 words per minute), with deep emphasis on thinking over typing.
- Eschewed TVs, personal computers, and mobile phones; loved fountain pens and a camper van nicknamed the “Touring Machine.”
- Multiple anecdotes describe him as demanding about precision in language and notation, leaving some colleagues with a lasting “inner critic” shaped by his standards.