March 11th, 2025

How do we tell truths that might hurt?

Edsger W. Dijkstra's 1975 discourse emphasizes the need for honesty in computing, critiques outdated programming languages, and advocates for simplicity to enhance reliability while questioning the community's willingness to confront these issues.

Read original articleLink Icon
FrustrationSkepticismAmusement
How do we tell truths that might hurt?

Edsger W. Dijkstra's 1975 discourse addresses the challenges of communicating uncomfortable truths in computing science. He argues that while it is scientifically dishonest to suppress unpleasant truths, doing so often leads to personal and professional backlash. Dijkstra highlights the tendency of the computing community to ignore significant issues, such as the inadequacies of programming languages like FORTRAN and COBOL, which he describes as detrimental to intellectual integrity. He asserts that programming is a complex branch of applied mathematics and that the tools used in programming can significantly influence thought processes. Dijkstra lists several harsh truths about programming languages and practices, emphasizing the need for simplicity and clarity in programming to ensure reliability. He critiques the reliance on outdated languages and the detrimental effects of poor educational foundations on future programmers. Dijkstra concludes by questioning the community's willingness to confront these uncomfortable truths and the implications of remaining silent.

- Dijkstra emphasizes the importance of honesty in addressing uncomfortable truths in computing.

- He critiques the inadequacies of several programming languages, including FORTRAN and COBOL.

- The influence of programming tools on thought processes is highlighted as a significant concern.

- Dijkstra advocates for simplicity in programming to enhance reliability.

- He questions the computing community's readiness to confront and discuss these issues openly.

AI: What people are saying
The comments reflect a diverse range of opinions on Dijkstra's discourse and its implications for computing today.
  • Some commenters defend the use of playful and anthropomorphic language in programming, arguing it enhances enjoyment and engagement.
  • There is debate over Dijkstra's harsh critiques of certain programming languages, with some viewing them as outdated and others as overly critical.
  • Several comments highlight the evolving nature of programming, particularly in relation to natural language processing and the rise of LLMs.
  • Concerns are raised about the arrogance and entitlement that can arise in the computing community, as well as the challenges of addressing uncomfortable truths.
  • Some commenters express skepticism about the relevance of Dijkstra's views in the context of modern programming practices and technologies.
Link Icon 17 comments
By @IAmNotACellist - about 1 month
> The use of anthropomorphic terminology when dealing with computing systems is a symptom of professional immaturity.

Fuck all the way off with this "truth!" So much coding is made more enjoyable and profitable by people having fun like this. KoboldAI is one of my favorite projects, and like it or not, attention is driven to projects that are cute and lever human perception for their benefit. Mascots are even an important part of whether a technology becomes popular or not. This isn't stogy IBM black-tie mainframe-driven development anymore, nor should it be.

I know tons of professional developers who live and breathe computer science that enjoy having fun with their terminology and how they choose to represent and discuss computers, anthropomorphizing languages, projects, interfaces, iconography, etc.

By @anonym29 - about 1 month
>you can really do only one of two things: fight the disease or pretend that it does not exist.

Choosing to fight the disease will make enemies of your friends, it will rob you of your peace of mind, it will rob you of your faith in humanity, and bring you no closer to curing said disease.

The choice of CS departments to adopt the latter strategy is one made either from either wisdom or game theory, and it is in the self-interest of rational actors.

>But, Brethern, I ask you: is this honest? Is not our prolonged silence fretting away Computing Science's intellectual integrity? Are we decent by remaining silent? If not, how do we speak up?

If you are vexed by these questions, ask not the very same, but rather whether the intellectual integrity of public discourse (including nominally professional subsets of it) is worth your sense of safety, your sense of sanity, and your social circle, because you'll pay with those every time you play the unwinnable game of trying to convince the world of uncomfortable truths.

By @jasonthorsness - about 1 month
How did Dijkstra intend this to be received? I started reading this at face value and was nodding along until the comments on BASIC programmers being "mentally mutilated and "use of COBOL cripples the mind" which seem more like he was trolling?

That said, this one really is a truth: "Simplicity is prerequisite for reliability."

And this one is no longer true since LLMs: "Projects promoting programming in "natural language" are intrinsically doomed to fail."

By @ambicapter - about 1 month
> In the good old days physicists repeated each other's experiments, just to be sure. Today they stick to FORTRAN, so that they can share each other's programs, bugs included.

This is pretty wild when you think about it. I wouldn't expect a lab to check another lab's work by re-writing their code (although, I'd love to hear some examples!), but if you don't, you're really powerless against whatever bugs they wrote into their scientific code.

By @sdwr - about 1 month
I think the truth on display is that living inside an artificial system that:

- is designed for you

- never talks back

- can be mastered

selects for (and breeds!) a deep sense of arrogance and entitlement

By @Jtsummers - about 1 month
1975, also surprisingly few conversations on this one. Here are the few with more than three comments:

https://news.ycombinator.com/item?id=24776336 - Oct 2020 (73 comments)

https://news.ycombinator.com/item?id=4926615 - Dec 2012 (67 comments)

https://news.ycombinator.com/item?id=2279260 - Mar 2011 (74 comments)

https://www.cs.utexas.edu/~EWD/ - for this and many more writings by Dijkstra.

By @MathMonkeyMan - about 1 month
> prof.dr.Edsger W.Dijkstra

Ah.

I don't know if he'd be pleased or dismayed to learn that here in 2025, programming is often a whole lot easier than pure mathematics. Programming is often small science experiments performed on immensely complex systems. Math is still actually math.

By @kittikitti - about 1 month
"Programming is one of the most difficult branches of applied mathematics; the poorer mathematicians had better remain pure mathematicians."

While this might have been true in 1975 with FORTRAN, I wonder if this holds true today?

By @Jimmc414 - about 1 month
"For instance: with respect to COBOL you can really do only one of two things: fight the disease or pretend that it does not exist"

A better question might be, how should you proceed when your truth does not want to be heard?

By @moffkalast - about 1 month
> FORTRAN --"the infantile disorder"--, by now nearly 20 years old, is hopelessly inadequate for whatever computer application you have in mind today: it is now too clumsy, too risky, and too expensive to use.

We're gonna be stuck with cpp for at least a thousand years aren't we.

By @ThrowawayR2 - about 1 month
The submitter really should have waited on this a bit longer. The 50th anniversary of this essay is June 18 but submitting it again then would be considered a [dupe].
By @magicalhippo - about 1 month
As a self-taught programmer, I have just "experienced" Dijkstra through various tidbits like this[1], and from the bits I've read he comes across as a bit of an pompous asshat. However strong opinions are a fertile ground for discussion, so I assume it's a deliberate strategy and can see why he keeps getting mentioned.

That said, I found this one particularly interesting given the recent rise of LLMs:

Projects promoting programming in "natural language" are intrinsically doomed to fail.

I assume he's referring to languages like COBOL and SQL, the latter still going strong, but I can't help but think that this part will change a lot in the coming decades.

Sure we'll likely still have some intermediary language with strong syntax and similar, just like how LLVM, C# and similar have their IL, but it's hard to think the majority of the programming is done typing in regular programming languages like JavaScript, C++ or similar in 2050.

[1]: I have of course learned about his algorithm

By @kazinator - about 1 month
Mainly, you tell all the truth, but you tell it slant; success in circuit lies. No wait, what the fuck am I saying, I'm Dijkstra!
By @djaouen - about 1 month
I think there is room for nuance. For example, it is true to say, “Programming requires intelligence.” It is also unnecessary to say, “You can’t program if you’re dumb.” One of these statements is productive and not insulting, the other isn’t.

Just my two cents.

By @immibis - about 1 month
When you figure it out, please do something about Gaza.