[HN Gopher] Knuth on Dijkstra (2014)
___________________________________________________________________
Knuth on Dijkstra (2014)
Author : wglb
Score : 84 points
Date : 2021-08-03 21:05 UTC (2 days ago)
(HTM) web link (gigamonkeys.com)
(TXT) w3m dump (gigamonkeys.com)
| Jtsummers wrote:
| https://www.cs.utexas.edu/~EWD/
|
| For those who haven't read them, I highly recommend taking some
| time to go through the EWD archive. No need to read them all at
| once, I made a point of trying to read one a week over a couple
| years, usually reading more, and got through most of the archive
| (not all though, I also caught up on a lot of the more well-known
| ones on top of my attempted in-order reading). Very informative
| and gives a lot more insight into Dijkstra's thoughts than the
| usual "he was an arrogant jerk" type comments that come up here.
| He may have been arrogant, and at times a jerk, but he was a very
| intelligent man with a lot of good-to-great ideas that still
| aren't well-disseminated through our discipline.
| thechao wrote:
| Liberal arts students at UT Austin would, on occasion, have to
| talk to Alan Kline (undergrad ombudsman for natural sciences).
| In the late 90s Alan shared a 'pod' with Dijkstra; Dijkstra had
| moved his desk right into the 'foyer' of his office such that
| he could stare out his door at students "loitering" in the pod
| common space. As an English major all I knew him as was the
| evil old fuck who tried to kill us with looks. As a 20-year
| programmer, I wish I'd've at least introduced myself.
| Tomte wrote:
| > someone having standing to call BS on Dijkstra
|
| Yes, but he does so _respectfully_. A lost art...
| coldtea wrote:
| Well, Dijkstra, on the other hand, was known to disrespect
| people...
| the-dude wrote:
| To exonerate him a bit, he was Dutch. And we don't call it
| disrespect, but telling the truth.
|
| But, do you have pointers to such cases?
| goto11 wrote:
| A classic example:
|
| "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."
|
| This is just typical gatekeeping, not "truth".
| musicale wrote:
| Dijkstra's letter "How do we tell truths that might
| hurt?" is a famous rant with a good deal of rhetorical
| flair.
|
| In context you can see that he (rather hilariously)
| savaged some of the most popular commercial programming
| languages at that time: FORTRAN, PL/I, BASIC, COBOL, and
| APL.
|
| (Somehow Lisp/Algol/C/Pascal got off unscathed;
| presumably they weren't popular enough in 1975 -
| otherwise Dijkstra would undoubtedly have had bad things
| to say about them as well.)
|
| https://www.cs.utexas.edu/users/EWD/ewd04xx/EWD498.PDF
| the-dude wrote:
| From your username I take : you're biased. No hope.
| wil421 wrote:
| Dutch always tell the truth or an opinion? There's a
| difference between being blunt and arrogant or a just plain
| asshole.
| teekert wrote:
| We always tell the truth and we also never generalize!
| mro_name wrote:
| and best regards to Crete!
| mettamage wrote:
| Let's say something is not worth someone's time.
|
| Dutch people: "xyz is not worth my time."
|
| Polite Dutch people: "Unfortunately, xyz is not worth my
| time."
|
| British people: "xyz is interesting indeed."
|
| I don't really know well enough what other cultures would
| say.
|
| They're all opinions, but on direct opinions you can at
| least trust that the person telling them believes them.
| It's not disrespect, direct communication yields a higher
| signal.
| majkinetor wrote:
| I often go so far to not want to work with people who
| sugar coat it.
|
| I prefer "your idea is pure garbage" over "it needs more
| work" because I want honesty above anything else as it
| leads to more efficient execution.
|
| Yes, some people feelings are hurt, but when I happen to
| cause it, I remember that 10 years old kids can survive
| much more brutal expressions while adults act like they
| are part of the mickey mouse club.
| coldtea wrote:
| > _I prefer "your idea is pure garbage" over "it needs
| more work" because I want honesty above anything else as
| it leads to more efficient execution._
|
| Does it though, or does it lead to animosity, back-
| stabbings, a toxic environment, discouragement and so on?
|
| Such things also have their tradeoffs.
| wil421 wrote:
| "Your idea is pure garbage" is very unprofessional. "I
| don't think your idea is well thought out and lacks a
| clear plan" or "your idea is a terrible idea because of
| x, y, z" is much better.
|
| "We'll consider your idea" to avoid confrontation because
| of a bad idea is sugarcoating.
| fleddr wrote:
| The more neutral term is directness, which is undeniably
| a mainstream dutch style of conversation.
|
| Expats living in the Netherlands do sometimes express it
| being too blunt at times, yet quite a few more find it
| refreshing.
|
| And it's easy to see why. It's simple and efficient. You
| don't have to decode all the misdirection, fakeness,
| sugar coating that comes with less direct communication.
| You just get the message. It's less effort to parse and
| no information is lost in the process.
|
| And as you experience the delivery of this directness in
| real life, you can tell from body language that the
| messenger has zero intention to harm or upset you. Good
| intentions are clear.
|
| Directness is also an asset in business. Just the other
| week I openly challenged a manager 3 levels above me in a
| large 200+ meeting. I basically told him that his plan
| was based on quicksand, poor research (none at all), with
| unclear benefits.
|
| There's very few countries where you can do this, but
| here you can. And it's wonderful. In other cultures, you
| may simply not challenge a bad idea at all or needs tons
| of political massaging to get your feedback across.
|
| The result is that real, direct, non-political feedback
| flows to the top, which should be a core interest for
| leaders, rather than having yes-men.
|
| The dutch reject nonsense as part of their core, based on
| the national slogan "be normal, that's crazy enough". We
| don't like fluff, celebrities showing of too much, window
| dressing, misdirection, or any other tactic that is based
| on deceit.
|
| As such, arrogance is not our style, it is the very thing
| we break down.
| tuatoru wrote:
| If this is really so valuable, why aren't the largest,
| most successful corporations in the world Dutch?
|
| Interesting organization theory question here.
| fleddr wrote:
| Well, they are?
|
| Ever heard of Shell? Unilever? Heineken? Philips? Tons of
| lesser known names dominating water management, heavy
| transport, mega scale infrastructure?
|
| ASML, as the basis of almost any device with a chip in
| it?
|
| Ever heard of farm valley? The ridiculously tiny country
| being the #2 food exporter:
|
| https://www.nationalgeographic.com/magazine/article/holla
| nd-...
|
| Is this all a result of directness? No, it's a
| combination of the total dutch business culture:
|
| Directness. Brutal efficiency. Brutal effectiveness (work
| smart, not hard). Next-level automation. Rationality.
| Fast error-correcting. Reliability, do what you promise.
|
| Combined with world class infrastructure in roads, the
| largest rail network in the world, the busiest harbor of
| Rotterdam, and Schiphol airport.
|
| Combined with an extremely international outlook,
| consisting of a trade history spanning centuries.
|
| When you want to get shit done, and get it done properly,
| you call the Dutch.
|
| With this, I end my patriotism.
|
| Should this be a little too biased, note that it's Steve
| Jobs producing the quote "the best idea has to win", in
| reference to how one's position in a hierarchy should
| carry no weight to the value of an idea.
|
| And finally, I've once read a philosopher claiming that
| the reason capitalism has won over communism, is the lack
| of a feedback loop in communism.
|
| Well intended directness combined with anti-fragility is
| a super power.
| coldtea wrote:
| > _If this is really so valuable, why aren 't the
| largest, most successful corporations in the world
| Dutch?_
|
| Well, first the Netherlands do have some of the most
| succesful corportations in the world, given their size.
|
| Second, because while being valuable inside a business,
| honesty is not necessarily the be all end all criterium
| for success.
|
| You can be honest and more efficient for it, but lack
| other factors, like a large internal market, a huge
| military and diplomatic machine securing cheap resources,
| controlling trade routes, supporting your national
| currency and brokering deals for your companies, a good
| headstart when Europe was broken down and shattered from
| WWI and WWII which barely affected your country, and so
| on.
|
| And, of course, honesty in society in general might be
| very good without translating in any way to more
| succesful businesses. Kindness, honesty, and treating
| people well are good and valuable things, but they don't
| make you money, nor help you build a billion dollar
| corporation.
|
| A honest ad, for example, for most products would be "you
| don't really need it", not "this will change your life".
| A conscious corporation would make products long lasting,
| which loses money compared to planned obsolesence.
|
| A kind employer would compensate employees well, sharing
| its mega-profits, not squeeze blood out of them - but
| having your employees wear diapers at the warehouse or
| risk getting fired for bathroom breaks makes you more
| money.
|
| Similarly pressuring employees that need the job into
| working 14+ hour shifts to get more units ready for Xmas
| is more profitable that giving them work/life balance and
| understanding that holidays are for family and friends,
| not for pushing people into more consumption.
| Jtsummers wrote:
| Because "the market" isn't perfectly efficient at
| removing poorly functioning organizations thanks to
| various delays in the feedback mechanisms. Also, humans
| aren't 100% rational and are perfectly capable of
| perpetuating even the dumbest of corporations.
|
| And even if they were, who's to say there aren't other
| criteria which wouldn't have greater influence on the
| success or failure than the directness of the Dutch
| versus the English euphemisms and couching.
| [deleted]
| wil421 wrote:
| I hate the nonsense and wish more people were direct like
| the Dutch.
|
| In my experience pure academics and scientists are more
| arrogant and lack empathy rather than being Dutch and
| direct.
| fleddr wrote:
| Biased as I am, I'd agree. It's unlikely for a dutch
| person to mislead you or be dishonest. There's no agenda.
| It's safe, reliable and comforting.
|
| And should such a direct remark upset you, the other
| party expects directness in return, and can handle it.
|
| As for academics and such, we reject elitism. Sure enough
| we accept differences in success and wealth, but we won't
| let it get to your head:
|
| https://images0.persgroep.net/rcs/rl7MK73sKTwSudzEJaBS-
| jjwW7...
|
| That's our PM cycling to work. You can talk to him should
| you come across him. There's no secret service, as in our
| society, he's "just another guy".
|
| This is expressed in another local slogan: "stick your
| head above the corn field and we chop it off".
|
| It's not a reference to communism, it means don't get
| cocky when successful, don't believe you're better than
| anybody else at a human level, and don't take yourself so
| serious.
|
| Admittedly, times are changing and inequality is on the
| rise.
|
| I'll end with saying that the "bluntness" some complain
| about is still a suppressed version of our actual
| directness. I'll illustrate by means of a recent
| conversation with a friend:
|
| Me: what do you think of my new clothes? Friend: Did you
| dig this up from the graveyard?
|
| I love my country :)
| the-dude wrote:
| There are many truths.
| Koshkin wrote:
| "A good thing about truths is that there are so many to
| choose from!"
| majkinetor wrote:
| There is only one truth about what YOU think.
| coldtea wrote:
| Yes, and peoples with sublety understand what they
| "trully think" is not necessarily the true objective
| reality - which is why they don't bluntly declare it as
| if it is, and as if making it known is the only thing
| that mattered.
|
| Which is why:
|
| "This idea might not be good"
|
| can be better than:
|
| "This idea is BS"
|
| Even if the second is more direct and is what you "trully
| think".
|
| Because even if you "trully think" the idea is BS, that's
| just like, your opinion, man. The first formulation makes
| this clearer.
|
| P.S. You can't complaint about me being curt here though,
| I blunty said what I trully think about this :-)
| tejtm wrote:
| Plus the language constructs, at least when transliterated
| into English, tend toward the imperative. Which put me at
| odds with my mother in law till I figured out she really
| did not have another way of communicating and was not as
| harsh as her words sounded.
| brnt wrote:
| Always annoying when you're dealing with a Dutch who
| insists on conflating directness (or worse, 'honesty') with
| rudeness. Makes me positively want to have some other
| passport.
|
| (Queue the why dontchas, naively illustrating my point ;))
| zerr wrote:
| I believe it is not about what but how.
| Zababa wrote:
| > 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.
|
| The biggest parallel I can draw here is people that went to
| college, and then in their 30s and 40s tell people to not go to
| college.
| Blikkentrekker wrote:
| And they typically use their experience to make that point, and
| argue that they lost time.
|
| I'd say that having done something lends more authority to the
| opinion that one should not do so.
| Zababa wrote:
| I disagree, it's easy to do something and then dismiss the
| importance it could have on you (which is also the point of
| the article). You have a bit more authority as you know what
| you went through, but on the other hand you're advocating for
| something that you didn't do.
| Blikkentrekker wrote:
| So yours is the position that one never has standing to
| argue that one should not do something, whether one did it,
| or one did not?
| starkd wrote:
| But that's more out of a genuine concern to avoid the
| unnecessary crud that's accumulated in the curriculum. Of
| course, college imputes useful things, but it also has a
| tendency to teach abstract concepts, when what you need in the
| beginning is the concrete steps to see things working.
| Zababa wrote:
| That's true, but as the article highlight, people can not
| perfectly know what experience was really important for them.
| choeger wrote:
| IIRC the point that Dijkstra made was that the available
| programming languages, like Fortran or Cobol were already FUBAR.
| He considered them toxic.
|
| So he would have thought differently in a world with more mature
| tools like Haskell, Rust, or a decent Lisp implementation.
| random314 wrote:
| Dijkstra actually recommended Haskell as a teaching language.
| wyager wrote:
| He was not happy when the UT administrators decided to switch
| to Java under pressure from donors.
| pvarangot wrote:
| I did my algo1 class with Haskell (Hugs 98) and honestly it
| was great. It also "evens the playing field" a lot among
| people with previous coding experience vs. people getting
| their toes wet for the first time. A lot of that was having a
| very powerful REPL.
|
| The problem is when you want to get into basic data
| structures. The learning curve for Haskell, if you want
| students to come up with their own implementations, steepens
| up a lot.
| planet-and-halo wrote:
| Definitely true. This is something every teacher has to take into
| account. The amount of knowledge that has seeped into your
| unconscious is substantial, and it's easy to forget that some
| people are still in the "unconscious incompetence" or "conscious
| incompetence" stage.
| goto11 wrote:
| Dijkstras take-down of Margaret Hamilton's methodology is quite
| revealing of his attitude:
| https://www.cs.utexas.edu/users/EWD/transcriptions/EWD08xx/E...
|
| After all, she _did_ manage writing software which put a man on
| the moon and is generally recognized as some of the most solid
| and bug-free software ever. Nevertheless Dijkstra is completely
| dismissive (and downright condescending) because they don 't use
| the _theoretically correct_ approach.
| Jtsummers wrote:
| https://www.cs.utexas.edu/~EWD/ewd08xx/EWD852.PDF
|
| https://www.cs.utexas.edu/~EWD/ewd08xx/EWD852a.PDF
|
| For anyone else who found the transcription to plaintext
| difficult to follow at times (some formatting losses). The
| second is a slightly edited version from 5 days after the
| first.
|
| Most of the "take-down of Margaret Hamilton's methodology" is
| directed at the writing in 3 texts, and a large chunk is just a
| brutal description of one James Martin and his book _Program
| Design which Is Provably Correct_.
|
| Quoting Dijkstra:
|
| > I have never had reasons to consider James Martin as a
| competent computing scientist, but that he is a competent
| salesman I don't doubt: he must have seen a market for [2] at
| $200 apiece. The book is so terrible that that is a depressing
| thought.
| janvdberg wrote:
| Knuth also talks about Dijkstra here:
| https://www.cs.utexas.edu/users/EWD/commemoration/EWD-commem...
| the-smug-one wrote:
| Tony Hoare's section was very lovely.
| jnwatson wrote:
| Knuth: "When I got to step 4, I paused and pretended to be at a
| loss; I said, "Hmmm. Is it legal to use the words 'go to' in
| this place?" Edsger said, "I saw it coming.""
|
| What an excellent troll! One of Dijkstra's more well-known
| papers is "Go To Statement Considered Harmful" [1].
|
| 1.
| https://homepages.cwi.nl/~storm/teaching/reader/Dijkstra68.p...
| junon wrote:
| Wonderful quote. I have the mentioned book and _definitely_
| recommend it.
| random314 wrote:
| > someone having standing to call BS on Dijkstra
|
| This is a really off color remark for an author of "Coders at
| work".
|
| Dijkstra was probably amongst the first European coders and wrote
| the earliest operating systems.
|
| If you read knuths remarks, he just has a difference of opinion,
| but the final conclusion is the same. The theory of algorithms is
| more important particular language or implementation details.
|
| EDIT: Case in point, I learned my first language Pascal
| programming for 6 months without a computer.
| skulk wrote:
| > The theory of algorithms is more important particular
| language or implementation details.
|
| They agree on the philosophy, but Knuth disagrees on the
| praxis.
| hbogert wrote:
| There's something Knuth is not addressing. If I understand
| Dijkstra correctly he's seeing an enormous detour that we're
| taking with, for example, languages which evolved from a computer
| architecture. These are not formal, they're for the most part
| convenience layers and leaky abstractions atop a machine.
|
| Compare this to other disciplines. Imagine a modern bridge
| builder looking at the bridges of old, and come up with a model
| just large enough to communicate to other bridge builders how
| bridges should be made.
|
| If the bridge builders of old "just did something", what is our
| modern bridge builder modelling then? You could argue, "but those
| bridges are still around, so they probably did something well".
| Sure, but that's just settling for a local optimum.
|
| If I want a good modern bridge, I hope that engineer is taking
| physics into account -- and not spending their time on how the
| old bridge builders were throwing with mud and stones. We can't
| stand on shoulders if we keep on regurgitating spoiled food.
| dhosek wrote:
| But the leaky abstraction is useful in that it is a _good_
| thing to have some conception of how the machine works. There
| 's a part of my brain that still thinks of every system as an
| overgrown Apple ][+. It's not the case, of course, but things
| like pointers, memory allocation and the like made perfect
| sense to me because I had a sense of what was happening at the
| hardware level. The last assembly language I used was IBM's 370
| assembly and I have only the vaguest knowledge of the machine
| code on the systems that I use today, but that 35-year-old
| knowledge is still helpful
___________________________________________________________________
(page generated 2021-08-05 23:02 UTC)