Live data from Hacker News

Edsger Dijkstra – The Man Who Carried Computer Science on His Shoulders

inference-review.com

111–120 of 206 posts

Re: Edsger Dijkstra – The Man Who Carried Computer Science on His Shoulders

#111

Backus literally inspired functional programming with his Turing acceptance and Dijkstra attacked him for it. Dijkstra attacked the paper that inspired Haskell and everything else that currently exists in FP. He tried to destroy it. He should be a footnote in history.

Functional programming already existed in a few forms by the 1977 Turing Award lecture. ML was around since 1973, which defined the ML family (Ocaml, SML, F#) and influenced Haskell and others. The Lisp family of languages had been around since 1958. Some parts of the lecture can be seen as related to languages in the APL family (originated in 1965). These developments influenced the lecture itself.

To gain context into Dijkstra's response, it may be worth reading it [0]. Here's the conclusion of his response:

> In short, the article is a progress report on a valid research effort but suffers badly from aggressive overselling of its significance, long before convincing results have been reached. This is the more regrettable as it has been published by way of Turing Award Lecture.

Regarding "He tried to destroy it." Dijkstra is known, and often criticized by others, for his hyperbole. Perhaps instead of imitating this heavily criticized aspect of his, you could tone down your rhetoric and actually create an argument rather than try to dismiss someone (and all their work) for one thing you disagree with.

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

Re: Edsger Dijkstra – The Man Who Carried Computer Science on His Shoulders

#112

Earlier quoted context omitted.

First, even UT Austin doesn't run their CS program as EWD would have wanted. See his comments when they switched to Java. Second, I suspect (but cannot prove) that this problem is why computer science grads need a couple of years of close supervision on the job before you can trust them with anything.

Fortunately, you can hire newly minted software engineers and they require no supervision whatsoever to solve your difficult problems.

Nice strawman. Oh, wait, no it isn't. It's a really cheap strawman. But in the end, it's just a strawman.

But it is my position that a graduate of a proper software engineering degree would take less initial supervision than a graduate of a CS degree.

Why? Because they would have already seen ambiguous requirements, and would have an idea of what to do. They would have already seen a multi-hundred-thousand-line code base, and would be more likely to have some idea how to navigate in one. They would have some idea of what production-level code looks like, and how to go about achieving that level of completeness. And so on.

Re: Edsger Dijkstra – The Man Who Carried Computer Science on His Shoulders

#113

I wish seeing the name Dijkstra didn't immediately remind me of his oft-quoted BASIC comment: "It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration." The problem is it's quoted regardless of how much the BASIC dialect being discussed resembles the one he was talking about [1]. There…

In my opinion, The Proper Way To Teach Computer Science was the one area where Dijkstra made his most detrimental contribution, by promoting a particular school of instruction based on strong opinions with weak to no empirical underpinnings.

In _Coders at Work_, Knuth offers a counter-argument that I find compelling:

> Seibel: It seems a lot of the people I've talked to had direct access to a machine when they were starting out. Yet Dijkstra has a paper I'm sure you're familiar with, where he basically says we shouldn't let computer-science science students touch a machine for the first few years of their training; they should spend all their time manipulating symbols.

> Knuth: But that's not the way he learned either. He said a lot of really great things and inspirational things, but he's not always right. Neither am I, but my take on it is this: Take a scientist in any field. The scientist gets older and says, "Oh, yes, some of the things that I've been doing have a really great payoff and other things, I'm not using anymore. I'm not going to have my students waste time on the stuff that doesn't make giant steps. I'm not going to talk about low-level stuff at all. These theoretical concepts are really so powerful-that's the whole story. Forget about how I got to this point." I think that's a fundamental error made by scientists in every field. They don't realize that when you're learning something you've got to see something at all levels. You've got to see the floor before you build the ceiling. That all goes into the brain and gets shoved down to the point where the older people forget that they needed it.

> Peter Seibel. _Coders at Work_

It is clear from the reading the EWDs that Dijkstra considered actually doing something with Computers detrimental to the practice of Computer Science as he conceived it, but the kind of Computer Science he practiced past 1975 or so was not particularly useful to Computer Engineering, because it refused to engage with it, and, as the article points out, it was not even particularly good math, because it refused to engage properly with that field as well.

Re: Edsger Dijkstra – The Man Who Carried Computer Science on His Shoulders

#114
post #90

I wish seeing the name Dijkstra didn't immediately remind me of his oft-quoted BASIC comment: "It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration." The problem is it's quoted regardless of how much the BASIC dialect being discussed resembles the one he was talking about [1]. There…

BASIC only ruins you if you have no intellectual curiosity. BASIC was my first language and with each new language I’ve learned since I’ve always been excited at the new possibilities and paradigms it opened up.

BASIC got a whole generation of people interested in programming.

I've yet to meet somebody who got interested in computers through correctness proofs.

Re: Edsger Dijkstra – The Man Who Carried Computer Science on His Shoulders

#115

I wish seeing the name Dijkstra didn't immediately remind me of his oft-quoted BASIC comment: "It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration." The problem is it's quoted regardless of how much the BASIC dialect being discussed resembles the one he was talking about [1]. There…

In my opinion, The Proper Way To Teach Computer Science was the one area where Dijkstra made his most detrimental contribution, by promoting a particular school of instruction based on strong opinions with weak to no empirical underpinnings. In _Coders at Work_, Knuth offers a counter-argument that I find compelling: > Seibel: It seems a lot of the people I've talked to had direct access to a machine when they were s…

I love that quote. Reminds me of a similar one by Taken, I think. Basically that many seem to think they can get the end product without growing it.

Re: Edsger Dijkstra – The Man Who Carried Computer Science on His Shoulders

#116

Backus literally inspired functional programming with his Turing acceptance and Dijkstra attacked him for it. Dijkstra attacked the paper that inspired Haskell and everything else that currently exists in FP. He tried to destroy it. He should be a footnote in history.

Functional programming already existed in a few forms by the 1977 Turing Award lecture. ML was around since 1973, which defined the ML family (Ocaml, SML, F#) and influenced Haskell and others. The Lisp family of languages had been around since 1958. Some parts of the lecture can be seen as related to languages in the APL family (originated in 1965). These developments influenced the lecture itself. To gain context i…

So, looking back from 2020, did Backus oversell it? We aren't there yet but it still looks like the right direction to me.

Re: Edsger Dijkstra – The Man Who Carried Computer Science on His Shoulders

#117
post #91

It is remarkable how much he contravened modern academic norms: no work to bring in external funding, relatively few papers, very little collaboration, almost no PhD students. It's not an exaggeration to say that a young researcher with these characteristics today would likely get fired from any high-ranked American research university before even coming up for tenure review. Perhaps our modern academic metrics of me…

Perhaps. I can't really speak to his career before he came to UT Austin in 1984, he was already very famous (Bjarne Stroustroup at Texas A&M/Columbia or Brian Kernighan at Princeton famous); if I remember, his chair was created for him as a full professor and without many of the usual duties of a professor. (One of his stipulations was that he not be made Chairman of the department.) According to the article, as a yo…

> I don't know if the Tuesday Morning Group at UT is still active,[...] but it was rather well known and its members produced a great deal of what is now "theoretical computer science".)

*Tuesday Afternoon Club [0].

[0] https://www.cwi.nl/about/history/e-w-dijkstra-brilliant-colo...

Re: Edsger Dijkstra – The Man Who Carried Computer Science on His Shoulders

#118
post #91

It is remarkable how much he contravened modern academic norms: no work to bring in external funding, relatively few papers, very little collaboration, almost no PhD students. It's not an exaggeration to say that a young researcher with these characteristics today would likely get fired from any high-ranked American research university before even coming up for tenure review. Perhaps our modern academic metrics of me…

Perhaps. I can't really speak to his career before he came to UT Austin in 1984, he was already very famous (Bjarne Stroustroup at Texas A&M/Columbia or Brian Kernighan at Princeton famous); if I remember, his chair was created for him as a full professor and without many of the usual duties of a professor. (One of his stipulations was that he not be made Chairman of the department.) According to the article, as a yo…

> Professor in the mathematics department of the Eindhoven University of Technology from 1962-1973. (As I understand, the "external funding" thing is less of a problem in mathematics. Also, I have no idea how tenure works there.)

Back then, i think full professors were appointed by the Queen. (Certainly so for Beatrix, but he became a prof before her inauguration)

Being appointed by the Queen made it really difficult to fire you - one of the reasons (I was told) they stopped this practice.

Moreover, back then research funding worked very different from how it works now in .nl. Actually, I have some idea of how finding worked from the mid-90s on... but I've read that prior to early 80s, in .nl, most PhD students were part-time and not employed by the university.

Not sure how accurate that is. Irrespective of its accuracy, it's clear that academic life had changed drastically since then. (In .nl at least)

Re: Edsger Dijkstra – The Man Who Carried Computer Science on His Shoulders

#119
post #95

Earlier quoted context omitted.

Yes, this is why computer science students from schools like Stanford, Carnegie Mellon, MIT (well, it's an engineering school, anyway), and UT Austin (EWD's stomping grounds) are almost completely unemployable in the software-related industries. All of the employers learned pretty quickly that they were all grossly incompetent.

First, even UT Austin doesn't run their CS program as EWD would have wanted. See his comments when they switched to Java. Second, I suspect (but cannot prove) that this problem is why computer science grads need a couple of years of close supervision on the job before you can trust them with anything.

Interestingly, Eindhoven University of Technology did use (more-or-less) Dijkstra's approach throughout the 90s. Sure, there were some odd bits, but the core of the curriculum was Dijkstra style.

Not sure what they're doing today.

Re: Edsger Dijkstra – The Man Who Carried Computer Science on His Shoulders

#120
post #14

Earlier quoted context omitted.

The older I get the harder it is to time-slot things, but I can think of a few things where much of the interesting work happened in the last ten years (similar to how a lot of pivotal work on GC algorithms happened in the late 90's). Most of the good work on escape analysis started around ~2010 Rust got us rolling on borrow semantics (I have a feeling the '20s will be remembered as the the golden age) I'm sure there…

Would you say there are real CS advances when it comes to LZ family compression algorithms and containers? Wasn't LZ well known prior to the past 10 years? And is there any kind of fundamental or theoretical advancement in containers, or is this an example of a new(er) type of implementation?

I think they're solving a different problem now.

Zip was an ahead-of-time compression algorithm until HTTP 1.1, and so the draw was storage and transmission bandwidth, but the deciding factor was decompression time and space complexity.

Now we've been using it for online compression so long, and bandwidth is a secondary concern. Eventually someone had to take the other constraints seriously. We made LZO and friends but the results weren't that exciting, and I think a lot of people wandered off for another 10 years to work on other things, until bandwidth became a bigger concern for producers than consumers.

For containers, I'd love to talk to some mainframe OS designers about how much of containers and The Cloud are merely democratizing techniques that were proven out on big iron 30 years ago. I suspect the answer is "a lot".

Post reply on HN