If read in its proper context, instead of misinterpreting it by thinking it's talking about concerns people have today, wasn't Dijkstra in favour of a very aggressive use of formal methods in programming? This is something quite different to what modern programmers or "computer scientists" are used to. I have a feeling that people don't really understand what Dijkstra was advocating.
His advocacy could be considered quite extreme. He apparently suggested (I don't know whether jokingly or not) that programmers not test their code, and instead write it on paper with various kinds of mathematical correctness proofs, and only then type it on a computer. It's admittedly thought provoking but I have an uncomfortable feeling that some naive people might have followed his advice very literally, and off a cliff.
Generally, I think people should read writing from decades ago in its proper context.
> It's admittedly thought provoking but I have an uncomfortable feeling that some naive people might have followed his advice very literally, and off a cliff.
I am reminded of his GOTO Considered Harmful. It was radical advice in its day. Not too many languages immediately after actually tossed it. It wasn't always obvious at the time how to transform some structures efficiently. E.g. the designers of UNIX were fully convinced by structured programming but C still had GOTO. Even now there's GOTO in drivers etc. in the Linux kernel. People debate whether Rust should have it. Etc. Despite this everyone accepts the basic idea these days.
Dijkstra took a top down 'God's eye' perspective which could seem impractical and even perverse to those people just trying to make things work by tinkering, and easily distracted into chasing after the latest poorly understood magic bullet. There doesn't seem to be an easy bridge between Dijkstra's vantage point and the complexity of actual practice, but That does not make his philosophy any less valuable.
Not getting lost in the complexities of our own making and preferably reaching that goal by learning how to avoid the introduction of those complexities in the first place, that is the key challenge computing science has to meet.
Nowadays machines are so fast and stores are so huge that in a very true sense the computations we can evoke defy our imagination. Machine capacities now give us room galore for making a mess of it
If only Dijkstra was around today... those thoughts were extremely prescient. I've seen far more overly complex and abstracted code than "too simple" code.
Though seriously it's mind blowing how convoluted modern desktop applications have sometimes become. Would be nice to have more KISS applications instead of fancy monstrosities for our daily usage.
Electronic engineering can contribute no more than the machinery, and that the general purpose computer is no more than a handy device for implementing any thinkable mechanism without changing a single wire. That being so, the key question is what mechanisms we can think of without getting lost in the complexities of our own making. Not getting lost in the complexities of our own making and preferably reaching that goal by learning how to avoid the introduction of those complexities in the first place, that is the key challenge computing science has to meet. --- The important distinction between "Computing Science" and "Computer Science". The former is what we need to focus on.
Does this overestimation of the usefulness of the gadget hurt computing science? I fear it does. At the one end of the spectrum it discourages the computing scientist from conducting all sorts of notational experiments because "his word-processor won't allow them", at the other end of the spectrum the art-and-science of program design has been overshadowed by the problems of mechanizing program verification. The design of new formalisms, more effective because better geared to our manipulative needs, is neglected because the clumsiness of the current ones is the major motivation for the mechanization of their use. --- The need to focus on better Formal Notations to design "Correctness" into Programs in the first place.
Inspired by EWD I have started translating all my (two) papers in my native language, Greek, and as hand-written manuscripts. It is slow going however because the illuminations take so much time and I keep running out of gold ink.
Btw, does anyone know of a good, cheap source of fresh parchment?
"I recently read a series of articles on the Shuttle on-board software and, though President Reagan has generously offered a teacher a free ride, I tell you I am not available."
Well, that passage was painfully prescient, even thought the Challenger disaster was not the result of computer failure, but of rubber o-rings denatured by extreme cold. The poor shuttle software and the primitive hardware on which it ran was consistent with the Rogers Commission's criticism of the shortcomings NASA's organizational culture with its acceptance of poor quality control, planning, and inadequate equipment design.
It seems quite reasonable to me to be concerned that your state prohibits abortion after the 6th week, or that reproductive-aged women and their family members might be reluctant to move there; his assertion that abortion is "what multiple generations of Americans have grown up seeing as a fundamental right" is entirely correct, at least for Americans from the US. And this level of rhetoric seems positively tame for an abortion debate:
I have friends who are sincere, thoughtful pro-lifers. I admire, if nothing else, their principled dedication to a moral stance that regularly gets condemned in academia. But I’d also say to them: even if you think of abortion as murder, a solid majority of Americans don’t, and it’s hard to see a stable way of getting what you want that skips the step where you change those Americans’ minds.
> It seems quite reasonable to me to be concerned that your state prohibits abortion after the 6th week, or that reproductive-aged women and their family members might be reluctant to move there;
Sure, but no one ever gets called a nutter for the reasonable things they say - if you pick only the reasonable statements of course he is going to look reasonable.
How about this one?
> More than that: if Texas continues on what half the country sees as a journey back to the Middle Ages, with no opt-outs allowed for the residents of its left-leaning urban centers, Dana and I will not be able to remain here, and many of our friends won’t either.
When, according to him, half the country disagrees with him, he'll just move, and (the delusional part) he thinks all his friends will move too. Note he was careful to say that neither he/his wife nor his friends/family will actually be affected by this, but yeah, it's a reason to move?
> fueled the growth of the radical right that’s now all but destroyed America.
Yeah, right. a tiny group so far in the minority that it isn't even a rounding error has "all but destroyed America". His argument is the same as Make America Great Again, with the same level of evidence for his claims.
Add in the fact that he thinks this political issue is a threat to computer science ... well, it's obviously a threat to his identity as a person, so he is extending "anything that is a threat to my identity is a threat to humanity, and by extension everything produced by humanity ... like Computer Science".
Yeah, he's a nutter; he's obviously very engaged in this discussion and sadly he has tied his identity of self to it and feels threatened when the discussion happens because he proposes that the mere discussion of this topic will result in a scorched earth-type of endgame.
His advocacy could be considered quite extreme. He apparently suggested (I don't know whether jokingly or not) that programmers not test their code, and instead write it on paper with various kinds of mathematical correctness proofs, and only then type it on a computer. It's admittedly thought provoking but I have an uncomfortable feeling that some naive people might have followed his advice very literally, and off a cliff.
Generally, I think people should read writing from decades ago in its proper context.