22 comments

[ 6.4 ms ] story [ 46.1 ms ] thread
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."
This feels so quaint today. How I'd like to be back in that timeframe.
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.
>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?

It constantly varies.
> 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.

What 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.

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

Great definition actually

(comment deleted)
> Once you understand how to write a program get someone else to write it.

Pretty relevant with LLMs and coding agents.

> 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.

To 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.

I read this as "Perlism" at first and got excited to see perl on HN.
> 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.

My favorite has always been:

> 31. Simplicity does not precede complexity, but follows it.

Kind of close to "build the first one to throw away".

In the long run every program becomes rococo - then rubble.
(comment deleted)
>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.

> 11. If you have a procedure with ten parameters, you probably missed some.

That brings back some memories. Just glad I eventually learned better.