Sources / 28 quotes, saved November 2014
Epigrams On Programming
Understand the program, then delegate it
Once you understand how to write a program get someone else to write it.
No formal route from the informal
One can't proceed from the informal to the formal by formal means.
Computers that speak English
If your computer speaks English it was probably made in Japan.
The computer in our skulls
The most important computer is the one that rages in our skulls and ever seeks that satisfactory external emulator. The standardization of real computers would be a disaster - and so it probably won't happen.
Programming languages
A language that doesn't affect the way you think about programming, is not worth knowing.
Artificial intelligence
A year spent in artificial intelligence is enough to make one believe in God.
The law of the excluded muddle
Structured Programming supports the law of the excluded muddle.
Programs worth writing need loops
A program without a loop and a structured variable isn't worth writing.
Simplicity and complexity
Simplicity does not precede complexity, but follows it.
Editing is rewording
Editing is a rewording activity.
Top-down, except the first time
Everything should be built top-down, except the first time.
Pictures and the limits of 10K words
Re graphics: 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.
Syntactic sugar causes cancer of the semicolon
Syntactic sugar causes cancer of the semi-colons.
Teaching computer science
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?
On structuring data
Functions delay binding: data structures induce binding. Moral: Structure data late in the programming process.
Recursion
Recursion is the root of computation since it trades description for time.
Programming as punning
Like punning, programming is a play on words.
One man's constant is another's variable
One man's constant is another man's variable.
Low level programming languages
A programming language is low level when its programs require attention to the irrelevant.
Seek symmetry everywhere
Symmetry is a complexity reducing concept (co-routines include sub-routines); seek it everywhere.
Lisp programmers and the cost of nothing
A LISP programmer knows the value of everything, but the cost of nothing.
Everything is a special case of something more general
In programming, everything we do is a special case of something more general - and often we know it too quickly.
Optimization
Optimization hinders evolution.
Motto for a research laboratory
Motto for a research laboratory: What we work on today, others will first think of tomorrow.
Things no language can say well
There will always be things we wish to say in our programs that in all known languages can only be said poorly.
Turing machine
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.
Computers process numbers, not symbols
Make no mistake about it: Computers process numbers - not symbols. We measure our understanding (and control) by the extent to which we can arithmetize an activity.
Great programmers must learn what not to do
Everyone can be taught to sculpt: Michelangelo would have had to be taught how not to. So it is with the great programmers.