Alan Perlis (1922 – 1990)
American computer scientist known for his pioneering work in programming languages, most notably as a member of the team that developed the ALGOL programming language.
117: It goes against the grain of modern education to teach students to program. What fun is there to making plans, acquiring discipline in organizing thoughts, devoting attention to detail and, learning to be self-critical?
80: Prolonged contact with the computer turns mathematicians into clerks and vice versa.
75: The computing field is always in need of new cliches: Banality sooths our nerves.
8: A programming language is low level when its programs require attention to the irrelevant.
I think it is inevitable that people program poorly. Training will not substantially help matters. We have to learn to live with it.
11: If you have a procedure with 10 parameters, you probably missed some.
116: You think you know when you learn, are more sure when you can write, even more when you can teach, but certain when you can program.
We toast the Lisp programmer who pens his thoughts within nests of parentheses.
41: Some programming languages manage to absorb change, but withstand progress.
39: A picture is worth 10K words - but only those to describe the picture. Hardly any sets of 10K words can be adequately described with pictures.
31: Simplicity does not precede complexity, but follows it.
57: It is easier to change the specification to fit the program than vice versa.
Both knowledge and wisdom extend man's reach. Knowledge led to computers, wisdom to chopsticks.
I think that it's extraordinarily important that we in computer science keep fun in computing. When it started out, it was an awful lot of fun. Of course, the paying customers got shafted every now and then, and after a while we began to take their complaints seriously. We began to feel as if we really were responsible for the successful, error-free perfect use of these machines. I don't think we are. I think we're responsible for stretching them, setting them off in new directions, and keeping fun in the house. I hope the field of computer science never loses its sense of fun. Above all, I hope we don't become missionaries. Don't feel as if you're Bible salesmen. The world has too many of those already. What you know about computing other people will learn. Don't feel as if the key to successful computing is only in your hands. What's in your hands, I think and hope, is intelligence: the ability to see the machine as more than when you were first led up to it, that you can make it more.
The vision we have of conversational programming takes in much more than rapid turn around time and convenient debugging aids: our most interesting programs are never wrong and never final. [...] What is new is the requirement to make variable in our languages what we had previously taken as fixed. I do not refer to new data classes now, but to variables whose values are programs or parts of programs, syntax or parts of syntax, and regimes of control.
16 Every program has (at least) two purposes: the one for which it was written and another for which it wasn't.
95: Don't have good ideas if you aren't willing to be responsible for them.
64: Often it is means that justify ends: Goals advance technique and technique survives even when goal structures crumble.
Programmers should never be satisfied with languages which permit them to program everything, but to program nothing of interest easily.
There is an appreciated substance to the phrase "ALGOL-like" which is often used in arguments about programming, languages and computation. ALGOL appears to be a durable model, and even flourishes under surgery — be it explorative, plastic, or amputative.