"Are you quite sure that all those bells and whistles, all those wonderful facilities of your so called powerful programming languages, belong to the solution set rather than the problem set?" (Edsger W Dijkstra, "A Discipline of Programming", 1976)
"Program testing can be used to show the presence of
bugs, but never to show their absence!" (Edsger W Dijkstra, "Notes on
Structured Programming", 1970)
"The art of programming is the art of organizing
complexity, of mastering multitude and avoiding its bastard chaos as
effectively as possible." (Edsger W Dijkstra, "Notes on Structured
Programming", 1970)
"This is generally true: any sizeable piece of program, or even a complete program package, is only a useful tool that can be used in a reliable fashion, provided that the documentation pertinent for the user is much shorter than the program text. If any machine or system requires a very thick manual, its usefulness becomes for that very circumstance subject to doubt!" (Edsger W. Dijkstra, "On the reliability of programs", 1970)
"The competent programmer is fully aware of the
strictly limited size of his own skull; therefore he approaches the programming
task in full humility, and among other things he avoids clever tricks like the
plague." (Edsger W Dijkstra, "The Humble Programmer", 1972)
"The effective exploitation of his powers of
abstraction must be regarded as one of the most vital activities of a competent
programmer." (Edsger W Dijkstra, "The Humble Programmer", 1972)
"Programming is one of the most difficult branches of
applied mathematics; the poorer mathematicians had better remain pure
mathematicians." (Edsger W Dijkstra, "How do we tell truths that
might hurt?", 1975)
"How do we convince people that in programming simplicity and clarity - in short: what mathematicians call 'elegance' - are not a dispensable luxury, but a crucial matter that decides between success and failure?" (Edsger W Dijkstra, "'Why is software so expensive?' An explanation to the hardware designer", 1982)
"Software engineering, of course, presents itself as
another worthy cause, but that is eyewash: if you carefully read its literature
and analyse what its devotees actually do, you will discover that software
engineering has accepted as its charter 'How to program if you cannot'."
(Edsger W Dijkstra, "On the cruelty of really teaching computing
science", 1988)
The required techniques of effective reasoning are pretty
formal, but as long as programming is done by people that don't master them,
the software crisis will remain with us and will be considered an incurable
disease. (Edsger W Dijkstra, "Answers to questions from students of
Software Engineering”, 2000)
"The purpose of abstraction is not to be vague, but to create a new semantic level in which one can be absolutely precise." (Edsger Dijkstra)
No comments:
Post a Comment