How Do We Tell Truths That Might Hurt?

By Edsger Dijkstra · 1975

A critique of programming languages, professional habits and computing education, questioning whether avoiding uncomfortable conclusions undermines the integrity of computer science.

Dijkstra considers the professional risks of stating conclusions that colleagues or industry may resist. He argues that remaining silent to avoid unpopularity undermines the intellectual integrity of computing science. Rather than offering advice on tactful communication, he presents a series of deliberately forceful criticisms.

He describes programming as a demanding branch of applied mathematics and argues that tools shape how programmers think. He criticises languages including FORTRAN, BASIC, COBOL, PL/I and APL, questioning their suitability and educational effects. He also stresses the importance of precise language and a strong command of one’s native tongue.

The essay challenges dependence on particular manufacturers, uncontrolled software complexity and the use of human characteristics to describe computers. It also rejects natural-language programming and calls for firm scientific foundations for software engineering. Dijkstra closes by asking whether his audience will confront these issues or simply return to familiar practices.

Quotes

✓Copied