$ cat posts/epigrams-in-programming.md
Epigrams in programming
Alan Perlis was the first person to receive the Turing Award, in 1966. He was a man of great humor and a pioneer in the development of programming languages, especially through his contribution to ALGOL.

His epigrams in programming are famous. They were published in 1982 in the journal of SIGPLAN (the special interest group on programming languages) of the ACM, they are part of the folklore of our profession, and they get quoted all the time in papers, blogs and articles.
The list of epigrams in programming is long, but here is my personal selection. I have translated several, but some are better understood in English, so I left them as they were. I have also kept the numbering of the original list. I hope you enjoy them.
The epigrams in programming
One man’s constant is another man’s variable. (Or one man’s constancy is another man’s variable.)
Syntactic sugar causes cancer of the semicolon.
Every program is a part of some other program and rarely fits.
It is easier to write an incorrect program than understand a correct one.
If you have a procedure with ten parameters, you probably missed some.
Optimization hinders evolution.
Once you understand how to write a program get someone else to write it.
Simplicity does not precede complexity, but follows it.
There are two ways to write error-free programs; only the third one works.
A LISP programmer knows the value of everything, but the cost of nothing.
It is easier to change the specification to fit the program than vice versa.
Fools ignore complexity. Pragmatists suffer it. Some can avoid it. Geniuses remove it.
Documentation is like term insurance: It satisfies because almost no one who subscribes to it depends on its benefits.
If your computer speaks English, it was probably made in Japan.
A year spent in artificial intelligence is enough to make one believe in God.
What is the difference between a Turing machine and the modern computer? It’s the same as that between Hillary’s ascent of Everest and the establishment of a Hilton hotel on its peak.
One does not learn computing by using a hand calculator, but one can forget arithmetic.
When a professor insists computer science is X but not Y, have compassion for his graduate students.
In computing, the mean time to failure keeps getting shorter.
One can’t proceed from the informal to the formal by formal means.
You can’t communicate complexity, only an awareness of it.
Within a computer natural language is unnatural.
You think you know when you can learn, are more sure when you can write, even more when you can teach, but certain when you can program.
It goes against the grain of modern education to teach children to program. What fun is there in making plans, acquiring discipline in organizing thoughts, devoting attention to detail and learning to be self-critical?
Programming is an unnatural act.
And if there are epigrams, then there are meta-epigrams:
- Epigrams are interfaces across which appreciation and insight flow.
- Epigrams parametrize auras.
- Epigrams are macros, since they are executed at read time.
- Epigrams crystallize incongruities.
- Epigrams scorn detail and make a point: They are a superb high-level documentation.
- Epigrams have extremely low entropy.
Comments
comments powered by Disqus