1. 23
  1. 26

    “I don’t know how many of you have ever met Dijkstra, but you probably know that arrogance in computer science is measured in nano-Dijkstras.

    – Alan Kay

    1. 7

      I don’t really agree with the overall thrust of his opinions here, but some of them are good aphorisms, and it’s probably produced more quotable lines about programming languges than any other document. The first sentence of the APL one is even used by APLers themselves:

      APL is a mistake, carried through to perfection.

      This one is still relevant for a certain style of “reproducible science” that relies heavily on distributing the original experimenter’s VM/docker images:

      In the good old days physicists repeated each other’s experiments, just to be sure. Today they stick to FORTRAN, so that they can share each other’s programs, bugs included.

      This one has not yet been proved wrong:

      Projects promoting programming in “natural language” are intrinsically doomed to fail.

      1. 3

        “Natural language” and “visual language” programming are a weird case of putting the cart before the horse- they seem to assume that mastering syntax is the difficult part of programming. Syntax is easy- we have entire sections of our brain dedicated to doing nothing else, and these sections are plastic enough that they can generally master a number of syntaxes with relative ease, even ignoring programming.

        It’s expressing ideas precisely that’s hard.

        Or, to put it another way: the novel is a popular structure for communicating ideas. Most everyone has mastered the syntax required to construct a novel in at least one language, but few people actually do it. There are other narrative forms- graphic novels or films, for example- which are heavily visual, but instead of solving the “problem” of the novel, they’ve created an entirely new class of problems that need to be solved, and end up being more complicated to make than a novel.

      2. 5

        I consider Dijkstra to be CompSci’s first, professional troll.

        1. 4

          I rather like the immaturity of anthropomorphic terminology!

          “This guy emits a signal and these dudes here are the handlers” and so on.

          1. 3

            I never did like stuffed shirt professionalism… always seemed to me to be the wrong way to prove your competence.

            If a code comment makes me chuckle… it improves my day.

            Sadly, the entire list still holds true but with few recent additions to the pantheon of crap.

            His snark about “soft scientists”….. Sigh.

            In principle they hold much promise to contribute….. recent work in behavioural economics is very interesting.

            In practice what I have seen them achieve in the workplace is…. ahhh… lamentable.

            1. 2

              It’s especially prevalent in the Lisp community and communities influenced by it (like the MIT hacker culture). Perhaps because of the proximity to AI research, terms like “teach” and “learn” are used a lot even for things that are clearly not machine learning or AI. Things like in a changlog, “taught the compiler how to optimize more special cases”.

            2. 5

              wow, what an asshole

              1. [Comment removed by author]

                1. 12

                  ’Cuz this kind of assertion:

                  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.

                  is a classic example of contempt culture. I count five paragraphs in that essay that just consist of shitting on useful programming languages; two that comprise shitting on other intellectual disciplines; three that are just pointlessly shitting on IBM and the US DoD. Useful, interesting things have been done and achieved with every tool and by every group and organisation he derides.

                  To add insult to injury (or maybe the other way around), the statement I’ve excerpted there isn’t even true! There’s a whole generation of programmers (many now around age 30-40) who grew up doing stuff on BASIC ROMs in tiny micros like the Acorn and Commodore. For example, the gentleman who introduced me to Scheme (when I was a teenager) spends his leisure time bumming cycles on C64s for fun and nostalgia.

                  If we’re going to pretend that being abrasive is a sign of statement’s accuracy, here’s an unpleasant counter-assertion: a skilled and patient teacher paying attention to a student can teach pretty much anything to pretty much anyone, so when Dijkstra says things like this, his statements actually comprise him outing himself as a poor or disinterested teacher.

                  1. 2

                    There’s a whole generation of programmers (many now around age 30-40) who grew up doing stuff on BASIC ROMs in tiny micros like the Acorn and Commodore

                    Yup. I was one of them. Well actually learnt FORTRAN first. Not that that was any better.

                    He does have a point in that it took me much longer than it should have to grok modularization and data structures and I inflicted some pretty bad code on the planet in those early days. (Well, not worse than the code I learnt from).

                    Curiously enough I would argue that the path I took through the (many) various languages has forced me to learn the “why” of many programming concepts the hard way.

              2. 2

                I wish the article actually addressed the question in its topic instead of just listing examples.

                1. 1

                  Djikstra’s writings have not aged well.