EPIGRAMS IN PROGRAMMING
1. One man's constant is another man's variable.
2. Functions delay binding; data structures induce binding.<br>Moral: Structure data late in the programming process.
3. Syntactic sugar causes cancer of the semicolon.
4. Every program is a part of some other program and rarely<br>fits.
5. If a program manipulates a large amount of data, it does<br>so in a small number of ways.
6. Symmetry is a complexity-reducing concept (co-routines<br>include subroutines); seek it everywhere.
7. It is easier to write an incorrect program than<br>understand a correct one.
8. A programming language is low level when its programs<br>require attention to the irrelevant.
9. It is better to have 100 functions operate on one data<br>structure than 10 functions on 10 data structures.
10. Get into a rut early: Do the same process the same way.<br>Accumulate idioms. Standardize. The only difference(!)<br>between Shakespeare and you was the size of his idiom list -<br>not the size of his vocabulary.
11. If you have a procedure with ten parameters, you<br>probably missed some.
12. Recursion is the root of computation since it trades<br>description for time.
13. If two people write exactly the same program, each<br>should be put into microcode and then they certainly won't<br>be the same.
14. In the long run every program becomes rococo - then<br>rubble.
15. Everything should be built top-down, except the first<br>time.
16. Every program has (at least) two purposes: the one for<br>which it was written, and another for which it wasn't.
17. If a listener nods his head when you're explaining your<br>program, wake him up.
18. A program without a loop and a structured variable isn't<br>worth writing.
19. A language that doesn't affect the way you think about<br>programming, is not worth knowing.
20. Wherever there is modularity there is the potential for<br>misunderstanding: Hiding information implies a need to check<br>communication.
21. Optimization hinders evolution.
22. A good system can't have a weak command language.
23. To understand a program you must become both the machine<br>and the program.
24. Perhaps if we wrote programs from childhood on, as<br>adults we'd be able to read them.
25. One can only display complex information in the mind.<br>Like seeing, movement or flow or alteration of view is more<br>important than the static picture, no matter how lovely.
26. There will always be things we wish to say in our<br>programs that in all known languages can only be said<br>poorly.
27. Once you understand how to write a program get someone<br>else to write it.
28. Around computers it is difficult to find the correct<br>unit of time to measure progress. Some cathedrals took a<br>century to complete. Can you imagine the grandeur and scope<br>of a program that would take as long?
29. For systems, the analogue of a face-lift is to add to<br>the control graph an edge that creates a cycle, not just an<br>additional node.
30. In programming, everything we do is a special case of<br>something more general -- and often we know it too quickly.
31. Simplicity does not precede complexity, but follows it.
32. Programmers are not to be measured by their ingenuity<br>and their logic but by the completeness of their case<br>analysis.
33. The eleventh commandment was "Thou Shalt Compute" or<br>"Thou Shalt Not Compute" - I forget which.
34. The string is a stark data structure and everywhere it<br>is passed there is much duplication of process. It is a<br>perfect vehicle for hiding information.
35. Everyone can be taught to sculpt: Michelangelo would<br>have had to be taught not to. So it is with great<br>programmers.
36. The use of a program to prove the 4-color theorem will<br>not change mathematics - it merely demonstrates that the<br>theorem, a challenge for a century, is probably not<br>important to mathematics.
37. The most important computer is the one that rages in our<br>skulls and ever seeks that satisfactory external emulator.<br>The standarization of real computers would be a disaster -<br>and so it probably won't happen.
38. Structured Programming supports the law of the excluded<br>middle.
39. Re graphics: A picture is worth 10K words - but only<br>those to describe the picture. Hardly any sets of 10K words<br>can be adequately described with pictures.
40. There are two ways to write error-free programs; only<br>the third one works.
41. Some programming languages manage to absorb change, but<br>withstand progress.
42. You can measure a programmer's perspective by noting his<br>attitude on the continuing vitality of FORTRAN.
43. In software systems, it is often the early bird that<br>makes the worm.
44.Sometimes I think the only universal in the computing<br>field is the fetch-execute cycle.
45. The goal of computation is the emulation of our<br>synthetic abilities, not the understanding of our analytic<br>ones.
46. Like punning, programming is a play on words.
47. As Will Rogers would have said, "There is no such thing<br>as a free variable."
48. The best book on programming for the layman is "Alice in<br>Wonderland"; but that's because...