Perlisisms

(cs.yale.edu)

47 points | by tosh 3 hours ago

7 comments

  • chriscbr 2 hours ago

    Random self plug - I liked a lot of these quotes from Alan Perlis, so around a year ago I bought the domain https://perl.is/ to display them.

    • summa_tech 2 hours ago

      Neat! What do you think about adding a "-2, -1, 0, +1, +2" agreement scale to each quote and showing the average instead of votes?

      I think many of those are pretty subjective, and maybe not always right for everyone or for all time. But there are certainly going to be some universal pearls of wisdom, and neither of us can - by ourselves - tell which ones they are.

    • LelouBil 1 hour ago

      > A programming language is low level when its programs require attention to the irrelevant.

      Great definition actually

      • hbcdbff 47 minutes ago

        Disagree - like many of the quotes on this page, it seems interesting at a very superficial level but upon further inspection turns out to be nonsensical.

        If something requires attention, it’s by definition relevant

        • addaon 37 minutes ago

          "If something requires attention, it’s by definition relevant"

          Not really. Consider an assembly language for a processor with a very orthogonal register set. The number of registers used by a block of code is relevant, but the identity of those registers isn't. That is, if the code can be written without spilling with six distinct, uniform registers, the choice of one of the 6! possible assignments of those six registers are irrelevant. But when writing that code, you still need to make the choice. And in real assembly languages, it's not necessarily obvious whether the choice here is arbitrary and unconstrained, or externally constrained (e.g. when choosing a mapping that avoids a move instruction by forcing the caller to pass a certain value in an agreed register; or when using an almost-orthogonal register set where it's unclear if later code cares that the value is left in a register that is also the possible target of a div instruction or something), so this requires attention at both write-time and read-time, even when irrelevant.

          • gwerbin 30 minutes ago

            And if I'm writing a script to query the Google Maps API then I really don't want to have to think about registers at all.

            Maybe "high-level"" low level" should be understood in terms relative to the task and its goals.

          • kbenson 30 minutes ago

            But relevant to what? Some things are relevant directly to the outcome by nature of what you're trying to express, while some other things are essentially incantations you need to repeat the same every time. Bad build systems and what you have to do to make them work are definitely relevant towards building a working program when you're using them, but at the same time the specific details are often somewhat irrelevant for your goal.

            Also, many stupid or nonsensical statements can often yield wisdom if you meditate on them enough. Indeed, many (most?) zen koans are so simplistic that to get any usefulness out of them you have to insert you own assumptions and try to determine how it might apply.

          • dundarious 53 minutes ago

            Relevance is relative, very much so.

          • dtagames 3 hours ago

            And in #27 we find the rationale behind all LLM coding agents, "Once you understand how a program works, get someone else to write it for you."

            • hugo0vaz 2 hours ago

              I think you misunderstood what the phrase actually means. You can only successfully manage or outsource a process once you understand it well enough to explain it. Therefore, most of the people doing agentic engineering are not following this Perlisim.

              • dtagames 54 minutes ago

                Oh, that's exactly what I meant, except its corollary. People who do understand how software works should absolutely be having agents code it. And we do.

              • fhars 1 hour ago

                The actual prescient LLM quote is "7. It is easier to write an incorrect program than understand a correct one."

                • summa_tech 2 hours ago

                  Once you understand how a program works, get someone else to write it for you. Then, you will quickly find out your understanding was insufficient.

              • jancsika 1 hour ago

                > 2. Functions delay binding; data structures induce binding. Moral: Structure data late in the programming process.

                A good way to enforce this is to encrypt the data at the beginning of the process.

                Then any function that returns structured data is clearly foolish and can be marked for removal.

                • LelouBil 1 hour ago

                  > Once you understand how to write a program get someone else to write it.

                  Pretty relevant with LLMs and coding agents.

                  • DonHopkins 1 hour ago

                    >1. One man's constant is another man's variable.

                    Did you ever have one of those days when variables didn't and constants weren't?

                    • sriram_malhar 2 hours ago

                      This feels so quaint today. How I'd like to be back in that timeframe.