On the Design of Programming Languages (1974) [pdf]

(cs.ucdavis.edu)

48 points | by jruohonen 3 days ago

5 comments

  • wolvesechoes 55 minutes ago
    Who are Wirths, Dijkstras, Hoares, McCarthies and Keys of today? I mean - who represents current generation of such thinkers? Genuinely asking. Most stuff I see here and in other places is about blogposts, videos and rants made by contemporary "dev influencers" and bloggers (some of them very skilled and capable of course, very often more than I am), but I would like to be in touch with something more thoughtful and challenging.
    • artemonster 10 minutes ago
      very hot and edgy take: theoretical CS is vastly overrated and useless. as someone who actively studied the field, worked on contemporary CPU archs and still doing some casual PL research - asides from VERY FEW instances from theoretical CS about graphs/algos there is little to zero impact on our practical developments in the overall field since 80s. all modern day Dijkstras produce slop research about waving dynamic context into java program by converting funds into garbage papers. more deep CS research is totally lost in some type gibberish or nonsense formalisms. IMO research and science overall is in a deep crisis and I can clearly see it from CS perspective
  • carlos256 1 hour ago
    He has some good points. This one is from a different paper (Good Ideas, Through the Looking Glass):

    Designers had ignored both the issue of efficiency and that a language serves the human reader, not just the automatic parser. If a language poses difficulties to parsers, it surely also poses difficulties for the human reader. Many languages would be clearer and cleaner had their designers been forced to use a simple parsing method.

  • palad1n 2 hours ago
    I think the legend goes Wirth created the Pascal language to be the most easily compilable. To show my age, I recall a class used Modula-2 when I was in college, also from Wirth, very Pascal-like.
    • pjmlp 1 hour ago
      Nowadays you can enjoy it on GCC, as it is now an officially supported frontend, after GNU Modula-2 got merged into it.

      https://gcc.gnu.org/onlinedocs/gcc-15.2.0/gm2

      Even available on compiler explorer to play with, https://godbolt.org/z/ev9Pbxn9K

      Yes, that was a common trend across all programming languages designed by him.

      That is also how P-Code came to be, he didn't want to create a VM for Pascal, rather the goal was to make porting easier, by requiring only a basic P-Code interpreter, it was very easy to port Pascal, a design approach he kept for Modula-2 (M-Code) and Oberon (Slim binaries).

    • zabzonk 2 hours ago
      > most easily compilable

      I think it was more that it would be easy to write a compiler for, which meant that CS students could write one. Don't have a source for this that I can remember, though.

  • vintagedave 1 hour ago
    I saw on page 25 (the third PDF page) a nice argument against variable shadowing. I can think of a couple of modern languages I wish had learned this ;)
    • lexicality 8 minutes ago
      That's an argument against references isn't it? Rather than shadowing.
  • medi8r 1 hour ago
    Looks like AI slop to me :)