Many things which cannot be overcome when they are together, yield themselves up when taken little by little.
- Plutarch, Sertorius
I have come to regard a program as an ordered set of pearls, a "necklace." The top pearl describes the program in its most abstract form, in all lower pearls one or more concepts used above are explained (refined) in pearls below it, while the bottom pearl eventually explains what still has to be explained in terms of a standard interface (= machine). The pearl seems to be a natural program module.
- E. W. Dijkstra, Structured Programming
One programs into a language, not in it.
- David Gries, The Science of Programming
One day in the future, we hope, one will be able to say that programmers can deliver software products - even compilers and operating systems - which never crash, because from the very beginning they contain no errors. But we can realize that hope only if all programmers recognize and fully understand the logical and mathematical foundations of our profession; and on this basis learn to construct mathematical specifications with the same care and completeness as an engineer surveys the site for a new bridge or the route for a new road. Working directly from these specifications the programmer must learn how to construct programs which will meet their specifications with mathematical rigor and certainty. Only then will he justify a claim that the arcane and error-prone craft of computer programming has been transformed into a respectable modern engineering profession.
- Manred Broy and Gunther Schmidt,
Theoretical Foundations of Programming Methodology
Although programming techniques have improved immensely since the early days, the process of finding and correcting errors in programming - known graphically if inelegantly as "debugging" - still remains a most difficult, confused and unsatisfactory operation. The chief impact of this state of affairs is psychological. Although we are happy to pay lip service to the adage that to err is human, most of us like to make a small private reservation about our own performance on special occasions when we really try. It is somewhat deflating to be shown publicly and incontrovertibly by a machine that even when we do try, we in fact make just as many mistakes as other people. If your pride cannot recover from this blow, you will never make a programmer.
- C. Strachey, Systems Analysis and Programming
The number of different inputs, i.e. the number of different computation for which the assertions claim to hold is so fantastically high that demonstration of correctness by sampling is completely out of the question. Program testing can be used to show the presence of bugs, but never to show their absence! Therefore, proof of program correctness should depend only upon the program text.
- E. W. Dijkstra, Structured Programming
To achieve constant success one must change his conduct with the times.
- Niccolo Machiavelli, Discourses on the First Ten Books of Titus Livy
As is the case with all good things in life - love, good manners, language, cooking - personal creativity is required only rarely.
- Leon Krier, Architecture: Choice or Fate
This page last modified on 7 December 1998.