Live data from Hacker News

Edsger Dijkstra carried computer science on his shoulders (2020)

inference-review.com

81–90 of 229 posts

Re: Edsger Dijkstra carried computer science on his shoulders (2020)

#81
post #27

Earlier quoted context omitted.

He's a computer scientist speaking to other computer scientists, so I'd say he's talking about relevancy to computer science. But I think perhaps you've missed his subtle use of language. Fish swim, obviously. What submarines do in water isn't usually described a swimming. That's a bit odd in when you think about it as in both cases the objective is to get from A to B, while in the water. In fact if you look at only…

See what's strange here is that we would call a dancing robot "dancing", and not think twice about it.

I would call dancing lights “dancing” too. As has already been said, it’s a linguistic issue.

And it’s perfectly reasonable to say a machine “thinks.” It’s just good to understand that it’s a metaphor and not a literal description of what the machine is doing. I avoid saying machines think because it’s confusing, but in principle it’s fine.

Re: Edsger Dijkstra carried computer science on his shoulders (2020)

#82
post #15

Earlier quoted context omitted.

It was controversial at the time. Dijkstra advocated "single entry, single exit" for each control block. Programs should be composed of such blocks. Makes for very neat flowcharts. Good for entry and exit conditions. Single entry wasn't that controversial. Single exit, though, means no "break", or "continue" for loops, and no early returns from functions. This forces a rather convoluted style. Try writing a loop of t…

> Single exit, though, means no "break", or "continue" for loops, and no early returns from functions. Sounds like pretty standard functional programming a la Standard ML or Haskell, or am I missing something?

Guard clauses are considered good practice in many languages, as opposed to nested if's.

I'm not saying either approach is generally the right one, but I think it's interesting that best practice can be the polar opposite of his "single exit" recommendation

Re: Edsger Dijkstra carried computer science on his shoulders (2020)

#83
How could I spend 3 months in an internship at the Math&CS building of the TU of Eindhoven without knowing he had been so close to this place, after having studied CS including of course Dijkstra's algorithm for finding shortest paths in graphs?

Beautiful place btw, of course there are many buildings that didn't exist in his time, I remember the huge and old Atlas building, construction started in 1958.

You can go anywhere by bicycle from residential areas of Eindhoven to the TU/e, the city centre, supermarkets, train station, Philips Stadium, even neighbooring towns like Nuenen or Oirschot can be reached on roads dedicated to bikes.

Re: Edsger Dijkstra carried computer science on his shoulders (2020)

#84
post #64

Earlier quoted context omitted.

Maybe I'm stupid, but does he mean that as long as the task at hand is solved it doesn't matter how we categorize it. In the submarine case it would be "move through water", for example. Or is it deeper than that?

Yes. He was interested in problem-solving, not philosophizing. The debates about AI going on right now are the kind he’d prefer to avoid.

To be fair, 10+ years ago this conversation definitely would have been pretty silly. Maybe about as interesting as asking "is there other life in the universe".

No one knows the answer, it's an incredibly over discussed topic, and we won't know for sure for many years.

I think those points still apply to AI intelligence today. However, the power of today's AI greatly outstrips anything Djikstra would have seen in his day.

Re: Edsger Dijkstra carried computer science on his shoulders (2020)

#85
post #16

Dijkstra is a wonderful source of memorable quotes and hot takes from the early days of software. A sampling: > “The competent programmer is fully aware of the limited size of his own skull. He therefore approaches his task with full humility, and avoids clever tricks like the plague.” (Dijkstra, 1972) > “The use of COBOL cripples the mind; its teaching should, therefore, be regarded as a criminal offense.” (Dijkstra…

I will get downvoted for that bur I will ask anyway. So what exactly are his achievements?

After reading the article it seems that he mostly produced hot takes, while others did the actual heavy lifing. Goto considered harmful? And some algorithm that would probably be found by someone else?

Will Linus get a monument made of pure gold when he dies?

Re: Edsger Dijkstra carried computer science on his shoulders (2020)

#86
post #43

> "Whether written using a fountain pen or typewriter, Dijkstra’s technical reports were composed at a speed of around three words per minute. “The rest of the time,” he remarked, “is taken up by thinking.”9 For Dijkstra, writing and thinking blended into one activity. When preparing a new EWD, he always sought to produce the final version from the outset." > "He also never purchased a computer. Eventually, in the la…

3 WPM really shook me as well. Today we complain about not having enough time to work on our projects, but back in the good old days, as successful as Dijkstra was, got time to spend 3 WPM and still produced close to 7k articles! Astonishing.

Are you really any faster on average? Sure I can type 60 wpm (I haven't measured, but this is a reasonable speed for anyone to obtain with a little practice, maybe I'm only 40, or I might even get to 100), but that is in typing situations where I'm not having to think. If your job is to enter some document into a word processor (a human OCR), or transcribe a recording (human speech to text) then typing speed is your limit. However for most of us the limit is thinking. I can type one sentence fast, but then I need to stop to think what the next sentence will say and so my time goes down. When writing code I need even more time to think and thus my total speed is lower. My fingers can still move at 60wpm though.

Re: Edsger Dijkstra carried computer science on his shoulders (2020)

#87

Earlier quoted context omitted.

whats wrong with object oriented programming?

Most real world problems don’t fit into neatly into hierarchical structures. OOP pushes you towards trying to model everything in the world an objects with strictly defined operations that can be performed on, where those actions are determined by the data type itself. You end up being forced to co-mingle your data structure design, with your data processing design. Which tends to be rather unhelpful. Keeping your da…

I think the main problem with OOP is that the classic animal/cat/dog type class hierarchy examples that are used in teaching are in fact hardly ever used in the real world - giving a very misleading view of how it's actually used in practice.

Most people using OOP languages prefer composition over hierarchies and I almost never see those complex class structures modelled on data ( for some of the reasons you give ).

In terms of evolvability - encapsulation - a key feature of OOP - is a key tool in enabling that.

Re: Edsger Dijkstra carried computer science on his shoulders (2020)

#88
That title is a bit much. Did Dijkstra do so more than Wirth? Hoare? Backus? Knuth? von Neumann? Maybe, maybe, maybe, no, and definitely no.

Dijkstra had some real achievements. He was one of the giants, no doubt. But he wasn't the giant. He was highly opinionated. He had his way of working, and anybody who did it any other way was wrong (and probably either stupid or lazy). That's not the optimal route to improving a field, especially when you aren't 100% right.

Re: Edsger Dijkstra carried computer science on his shoulders (2020)

#89
post #15

Earlier quoted context omitted.

It was controversial at the time. Dijkstra advocated "single entry, single exit" for each control block. Programs should be composed of such blocks. Makes for very neat flowcharts. Good for entry and exit conditions. Single entry wasn't that controversial. Single exit, though, means no "break", or "continue" for loops, and no early returns from functions. This forces a rather convoluted style. Try writing a loop of t…

I had always heard that the "single exit" focus on "break" and "continue" was a misunderstanding. When wild GOTOs roamed the earth, with was common for a subroutine to end by jumping to a new part of the code, with the jump location being different depending on conditionals within the code. The "single exit" commandment was that a subroutine should always exit back into the routine that had called it. That makes it l…

"Break" and "continue" have been (accurately) described as "structured goto". They are, at heart, goto. But they are constrained to operate in ways the make sense within the structured programming approach.

Re: Edsger Dijkstra carried computer science on his shoulders (2020)

#90
post #40
post #16

Dijkstra is a wonderful source of memorable quotes and hot takes from the early days of software. A sampling: > “The competent programmer is fully aware of the limited size of his own skull. He therefore approaches his task with full humility, and avoids clever tricks like the plague.” (Dijkstra, 1972) > “The use of COBOL cripples the mind; its teaching should, therefore, be regarded as a criminal offense.” (Dijkstra…

Perhaps even more relevant nowadays My point today is that, if we wish to count lines of code, we should not regard them as "lines produced" but as "lines spent": the current conventional wisdom is so foolish as to book that count on the wrong side of the ledger. https://www.cs.utexas.edu/users/EWD/transcriptions/EWD10xx/E...

I'm not sure if it's due to having come across this quote long ago, but this idea is ingrained in my bones.

Except I think people have often overly focused on "lines of code" as the unit for this metric, leading many to overrate terse code, even when it is very dense.

But I'm not sure what wording would capture this idea succinctly enough to include it in a pithy quote.

Post reply on HN