11 ms·
Perlisisms (1982)
- dtagames 5mo agoAnd 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 5mo agoI 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 5mo agoOh, 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.
- skydhash 5mo ago> People who do understand how software works should absolutely be having agents code it. I don’t think there’s such people. Either you’re writing a software for the first time and so the premise is not true. Or you’re writing it a second time and what would be the point? Just reuse the code you already have.
- dtagames 5mo agoThere are lots of people who understand how software works, including the fact that every line of code is new or else you wouldn't need to write it. Personally, I love "philosophy of software" questions like these, especially in the AI era. I write quite a bit about this on Medium: https://medium.com/@mimixco https://medium.com/@mimixco
- skydhash 5mo agoMaybe we need a definition of “understanding how software works”. There’s the technical aspect (computation theory, computer organization, compilation, executable format, …) and there’s the necessity aspect (the domain). The technical aspect can be learned although you can stop at the top of the abstraction tower (the programming language and its ecosystem). The domain aspect encompasses the whole world pretty much. Contributing to Blender does not qualify you to review a Krita patch. You have to learn the latter’s code first.
- summa_tech 5mo agoOnce you understand how a program works, get someone else to write it for you. Then, you will quickly find out your understanding was insufficient.
- dtagames 5mo agoIs that ever true! I wrote a whole Medium article[0] about this, one of my most popular. It's called "YOU ARE BUGS" as a joke from Three Body Problem on Netflix. [0] https://medium.com/gitconnected/you-are-bugs-improving-your-code-with-ai-agents-d6052de6633d https://medium.com/gitconnected/you-are-bugs-improving-your-...
- fhars 5mo agoThe actual prescient LLM quote is "7. It is easier to write an incorrect program than understand a correct one."
- sriram_malhar 5mo agoThis feels so quaint today. How I'd like to be back in that timeframe.
- chriscbr 5mo agoRandom self plug - I liked a lot of these quotes from Alan Perlis, so around a year ago I bought the domain https://perl.is/ https://perl.is/ to display them.
- summa_tech 5mo agoNeat! 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.
- DonHopkins 5mo 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?
- layer8 5mo agoIt constantly varies.
- jancsika 5mo 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.
- geon 5mo agoWhat does the quote mean? As you point out, I would prefer to parse a text string as early as possible, so that I could pass around structured data instead of having to parse the same string over and over. That seems so obvious that I can't imagine what the author meant.
- LelouBil 5mo ago> A programming language is low level when its programs require attention to the irrelevant. Great definition actually
- dundarious 5mo agoRelevance is relative, very much so.
- xn7 5mo agoThat makes that quote even better, no? What is relevant to you might not be relevant to me, the right level for you might too far low level for me.
- marcosdumay 5mo agoYes, that's the point.
- hbcdbff 5mo agoDisagree - 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 5mo 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.
- LelouBil 5mo ago> Once you understand how to write a program get someone else to write it. Pretty relevant with LLMs and coding agents.
- ripe 5mo ago> 102. One can't proceed from the informal to the formal by formal means. Seems to be a strike against LLM-based programming systems like Claude.
- Sharlin 5mo agoTo be fair, I don't think anyone is claiming that the process is anywhere close to formal. The word "vibe" implies anything except formality. What Perlis probably meant that formal methods are useless unless you already have a formal specification. The formalization process itself is by necessity informal.
- rezmason 5mo agoThese are fun to say out loud in the voice of the Kai Lentit's Perl programmer https://youtu.be/0jK0ytvjv-E?t=43 https://youtu.be/0jK0ytvjv-E?t=43 https://youtu.be/xE9W9Ghe4Jk?t=238 https://youtu.be/xE9W9Ghe4Jk?t=238
- shawn_w 5mo agoI read this as "Perlism" at first and got excited to see perl on HN.
- cwnyth 5mo agoOne can dream...
- zephen 5mo agoTechnically, I suppose, nightmares are dreams.
- cwnyth 5mo agoPerl is only as scary as its coder can make it.
- wredcoll 5mo agoI've never understood why so many self-declared programmers are so eager to brag that they can't understand a programming language which is, frankly, not really that complicated. I don't particularly like, say, lisp, but I can in fact understand lisp programs or write them if I need to.
- zephen 5mo agoI admit I also don't understand the characterization of perl as a write-only language, although I can make a guess about how it's because a lot of perl programs have many embedded regular expressions, and, like many programmers, I'm not particularly thrilled by things like sigils, and I don't find the syntax particularly good. You are right that it's not that complicated, but like any language that I'm not interested in mastering, the amount of learning that it would take to create idiomatic perl is not an investment I'm willing to make. And, given that none of the perl scripts that I was tasked with modifying were very long, I have always treated it, rather than a write-only language, as a read-only language; when someone hands me something in perl that needs to be updated, it gets recoded in something else.
- isityettime 5mo ago> A language that doesn't affect the way you think about programming, is not worth knowing. This one stood out to me. I'd say it's a favorite. These others are interesting in the age of LLMs: > 93. When someone says "I want a programming language in which I need only say what I wish done," give him a lollipop. > 114. Within a computer natural language is unnatural. > 115. Most people find the concept of programming obvious, but the doing impossible. > 27. Once you understand how to write a program get someone else to write it. > 113. The only constructive theory connecting neuroscience and psychology will arise from the study of software. This one remains worth thinking about in terms of the consequences and costs of automation and computerization, LLM-powered or not: > 99. In man-machine symbiosis, it is man who must adjust: The machines can't.
- layer8 5mo agoAlso: 102. One can't proceed from the informal to the formal by formal means.
- zahlman 5mo ago> 99. In man-machine symbiosis, it is man who must adjust: The machines can't. It seems worth noting here that the English verb "to adjust" is ambitransitive.
- NuclearPM 5mo agoWhy?
- MarkusQ 5mo agoIt either means man must adjust (themselves), or must adjust (the machine). So it's a somewhat arch joke than may not be apparent due to shifts in language usage. (Also, "man" in this context was short for "human" without regard to sex (which we now call gender)).
- layer8 5mo agoThe parent alludes to the fact that the sentence could conceivably be read as "In man-machine symbiosis, it is man who must adjust [the machine]", i.e. reading "adjust" as transitive rather than as intransitive. However, I think it's clear that the intended meaning is intransitive.
- rpdillon 5mo agoMy favorite has always been: > 31. Simplicity does not precede complexity, but follows it. Kind of close to "build the first one to throw away".
- 0xbadcafebee 5mo agoAnd then try not to fall into second system effect. So plan to build a third system...
- userbinator 5mo agoVery ironic, considering the story of Perl 6.
- jdw64 5mo agoIn the long run every program becomes rococo - then rubble.
- tenderfault 5mo ago76! Let’s do this!
- deleted 5mo ago[deleted]
- gwern 5mo agoFull original version, without omissions or typos: https://gwern.net/doc/cs/algorithm/1982-perlis.pdf https://gwern.net/doc/cs/algorithm/1982-perlis.pdf
- benj111 5mo ago>18. A program without a loop and a structured variable isn't worth writing I kind of disagree. It may not be a very big or interesting program but a hell of a lot of useful stuff is done on spread sheets without any loops or anything but numbers.
- jsrcout 5mo ago> 11. If you have a procedure with ten parameters, you probably missed some. That brings back some memories. Just glad I eventually learned better.