Live data from Hacker News

How do we tell truths that might hurt? (1975)

cs.utexas.edu

21–30 of 74 posts

Re: How do we tell truths that might hurt? (1975)

#21

He wrote this in 1975, dissing most of the popular programming languages of the time. Does anyone know which language Dijkstra didn't think was a mess? (and please don't say GCL, his own unrunnable toy language) I mean, if FORTRAN is a mess, then isn't ALGOL too? Is anyone here old enough to remember?

If I understand correctly, ALGOL had better ways of structuring code into functions than FORTRAN did. This let ALGOL do what eventually was called "structured programming", and FORTRAN do what was called "plate of spaghetti" programming.

This is not the same as saying that EWD thought that ALGOL was good...

Re: How do we tell truths that might hurt? (1975)

#22
post #6
post #5

Some of these have aged so perfectly that I only need substitute a few letters: > Python —"the infantile disorder"—, by now nearly 30 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. > It is practically impossible to teach good programming to students that have had a prior exposure to JS: as potential programmers t…

What modern language would Dijkstra approve of?

This is a very difficult question. We know somewhat his preferences, because he worked on implementing ALGOL 60 [0][1], but unfortunately we are blocked by a bit of incommensurability; in that time, garbage collection was not something that could be taken for granted. As a result, what he might have built in our era is hard to imagine.

That said, he did have relatively nice things to say about Haskell [2] and preferred Haskell to Java:

> Finally, in the specific comparison of Haskell versus Java, Haskell, though not perfect, is of a quality that is several orders of magnitude higher than Java, which is a mess (and needed an extensive advertizing campaign and aggressive salesmanship for its commercial acceptance).

I imagine that he would have liked something structured, equational, declarative, and modular; he would have wanted to treat programs as mathematical objects, as he says in [2]. Beyond that, though, we'll never know. He left some predictions like [3] but they are vague.

[0] https://en.wikipedia.org/wiki/ALGOL_60

[1] https://www.cs.utexas.edu/users/EWD/MCReps/MR35.PDF

[2] https://www.cs.utexas.edu/users/EWD/transcriptions/OtherDocs...

[3] https://www.cs.utexas.edu/users/EWD/transcriptions/EWD12xx/E...

Re: How do we tell truths that might hurt? (1975)

#23
post #5

Some of these have aged so perfectly that I only need substitute a few letters: > Python —"the infantile disorder"—, by now nearly 30 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. > It is practically impossible to teach good programming to students that have had a prior exposure to JS: as potential programmers t…

Your flame-bait revision is a perfect demonstration of what's wrong with the original post.

Re: How do we tell truths that might hurt? (1975)

#24
post #5

Some of these have aged so perfectly that I only need substitute a few letters: > Python —"the infantile disorder"—, by now nearly 30 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. > It is practically impossible to teach good programming to students that have had a prior exposure to JS: as potential programmers t…

What's with the hate for python. I've noticed some hate this irl and it's strange. Python is one of the best languages out there right now in terms of ease of use and future maintainability (with types).

I love this quote: "There are only two kinds of languages: the ones people complain about and the ones nobody uses". Bjarne Stroustrup.

Re: How do we tell truths that might hurt? (1975)

#25

Earlier quoted context omitted.

Dijkstra provides glimpses of his reasoning scattered across his missives. For example, for FORTRAN in https://www.cs.utexas.edu/~EWD/transcriptions/EWD03xx/EWD340... " The second major development on the software scene that I would like to mention is the birth of FORTRAN. At that time this was a project of great temerity and the people responsible for it deserve our great admiration. It would be absolutely unfair to…

I don't think any language that could ever be invented could be described as leaving programming students "mentally mutilated beyond hope of regeneration", no matter how bad it is. So either he was being hyperbolic (and the sarcasm was lost on me), or he was being shockingly dogmatic. It's the kind of ranting you do with your colleagues in a pub after-hours, not something you publish in a professional context and fra…

If you're used to exclusively programming with line numbers and you're a kid, sure, it might take a little bit of time and instruction to comprehend that line numbers aren't necessary. But from what he wrote it just sounds like this guy is whining about (when faced with students like this) having to actually do his job.

Re: How do we tell truths that might hurt? (1975)

#26
post #15

Earlier quoted context omitted.

Then you say "There are better options than BASIC for teaching new programmers." That's not what was written. I've read countless anecdotes from perfectly capable programmers who not only learned, but first discovered their interest in the field, via BASIC. No language "mentally mutilates programmers beyond hope of regeneration". And BASIC probably isn't even the worst one for learning purposes.

He calls out BASIC specifically because it was ubiquitous and often the only option on the machines novices would have available at the time. It logically follows that most programmers of that era, capable or otherwise, started on BASIC. Since he’s not here to tell us, I can only assume Dijkstra met the occasional exceptional individual who began learning to program in a more mathematically rigorous language during t…

> "He calls out BASIC specifically because it was ubiquitous and often the only option on the machines novices would have available at the time."

EWD's quote is from 1975 which is just barely the start of the microcomputer era (the Altair 8800 came out in '75 and the Apple II in '77), so he's not referring to those. Most people writing programs would have had access to mainframes and therefore had access to multiple language interpreters and compilers I would think.

Re: How do we tell truths that might hurt? (1975)

#27

He wrote this in 1975, dissing most of the popular programming languages of the time. Does anyone know which language Dijkstra didn't think was a mess? (and please don't say GCL, his own unrunnable toy language) I mean, if FORTRAN is a mess, then isn't ALGOL too? Is anyone here old enough to remember?

If I understand correctly, ALGOL had better ways of structuring code into functions than FORTRAN did. This let ALGOL do what eventually was called "structured programming", and FORTRAN do what was called "plate of spaghetti" programming. This is not the same as saying that EWD thought that ALGOL was good ...

I imagine he had at least some fondness for Algol 60 since he is co-credited with writing the first compiler for it.

Re: How do we tell truths that might hurt? (1975)

#28

He wrote this in 1975, dissing most of the popular programming languages of the time. Does anyone know which language Dijkstra didn't think was a mess? (and please don't say GCL, his own unrunnable toy language) I mean, if FORTRAN is a mess, then isn't ALGOL too? Is anyone here old enough to remember?

Well, Dijkstra together with Zonneveld wrote the first ever implementation of ALGOL 60, and, in fact, heavy-handed the recursive procedure calls into the language. If not for him, who knows, Quicksort may have not been invented for another decade or so.

ALGOL 68, on the other hand... "The more I see of it, the more unhappy I become." [0]

[0] https://www.cs.utexas.edu/users/EWD/transcriptions/EWD02xx/E...

Re: How do we tell truths that might hurt? (1975)

#30
post #6
post #5

Some of these have aged so perfectly that I only need substitute a few letters: > Python —"the infantile disorder"—, by now nearly 30 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. > It is practically impossible to teach good programming to students that have had a prior exposure to JS: as potential programmers t…

What modern language would Dijkstra approve of?

StandardML
Post reply on HN