Computer science is no more about computers than astronomy is about telescopes, biology is about microscopes or chemistry is about beakers and test tubes. Science is not about tools. It is about how we use them, and what we find out when we do.
Edsger DijkstraIf you want more effective programmers, you will discover that they should not waste their time debugging, they should not introduce the bugs to start with.
Edsger DijkstraSo-called "natural language" is wonderful for the purposes it was created for, such as to be rude in, to tell jokes in, to cheat or to make love in (and Theorists of Literary Criticism can even be content-free in it), but it is hopelessly inadequate when we have to deal unambiguously with situations of great intricacy, situations which unavoidably arise in such activities as legislation, arbitration, mathematics or programming.
Edsger DijkstraDon't blame me for the fact that competent programming, as I view it as an intellectual possibility, will be too difficult for the average programmer, you must not fall into the trap of rejecting a surgical technique because it is beyond the capabilities of the barber in his shop around the corner.
Edsger DijkstraIn passing I draw attention to another English expression which often occurs in Dutch texts: "the real world". In Dutch - and I am afraid not in Dutch alone - its usage is almost always a symptom of a violent anti-intellectualism.
Edsger DijkstraBesides a mathematical inclination, an exceptionally good mastery of one's native tongue is the most vital asset of a competent programmer.
Edsger DijkstraWe shall do a much better programming job, provided that we approach the task with a full appreciation of its tremendous difficulty, provided that we stick to modest and elegant programming languages, provided that we respect the intrinsic limitations of the human mind and approach the task as Very Humble Programmers.
Edsger DijkstraThanks to the greatly improved possibility of communication, we overrate its importance. Even stronger, we underrate the importance of isolation.
Edsger DijkstraThe tools we use have a profound and devious influence on our thinking habits, and therefore on our thinking abilities.
Edsger DijkstraHow 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 DijkstraYes, I share your concern: how to program well -though a teachable topic- is hardly taught. The situation is similar to that in mathematics, where the explicit curriculum is confined to mathematical results; how to do mathematics is something the student must absorb by osmosis, so to speak. One reason for preferring symbol-manipulating, calculating arguments is that their design is much better teachable than the design of verbal/pictorial arguments. Large-scale introduction of courses on such calculational methodology, however, would encounter unsurmoutable political problems.
Edsger DijkstraSimplicity is a great virtue but it requires hard work to achieve it and education to appreciate it. And to make matters worse: complexity sells better.
Edsger DijkstraIf we wish to count lines of code, we should not regard them as "lines produced" but as "lines spent."
Edsger DijkstraIf in physics there's something you don't understand, you can always hide behind the uncharted depths of nature. You can always blame God. You didn't make it so complex yourself. But if your program doesn't work, there is no one to hide behind. You cannot hide behind an obstinate nature. If it doesn't work, you've messed up.
Edsger DijkstraA programming language is a tool that has profound influence on our thinking habits.
Edsger DijkstraTeaching to unsuspecting youngsters the effective use of formal methods is one of the joys of life because it is so extremely rewarding.
Edsger Dijkstra