Edsger Dijkstra
Pioneer of structured programming and graph algorithms
Quotes by Edsger Dijkstra
Object-oriented programming is an exceptionally bad idea which could only have originated in California.
Do only what only you can do.
Perfecting oneself is as much unlearning as it is learning.
A picture may be worth a thousand words, a formula is worth a thousand pictures.
We must be very careful when we give advice to younger people: sometimes they follow it!
The effort of using machines to mimic the human mind has always struck me as rather silly. I would rather use them to mimic something better.
Elegance is not a dispensable luxury but a quality that decides between success and failure.
The tools we use have a profound (and devious!) influence on our thinking habits, and, therefore, on our thinking abilities.
Besides a mathematical inclination, an exceptionally good mastery of one's native tongue is the most vital asset of a competent programmer.
How do we tell truths that might hurt? By being selective, by being honest, and by being very careful.
It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration.
If 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.
Progress is possible only if we train ourselves to think about programs without thinking of them as pieces of executable code.
Why has elegance found so little following? That is the reality of it. Elegance has the disadvantage, if that's what it is, that hard work is needed to achieve it and a good education to appreciate it.
The ability of discerning high quality inevitably puts its possessor in an existential predicament: he sees the mediocrity of what passes for high quality, but he also sees the great mass of people, including the established authorities, unaware of this mediocrity.
I mean, if 10 years from now, when you are doing something quick and dirty, you suddenly visualize that I am looking over your shoulders and say to yourself, 'Dijkstra would not have liked this', well, that would be enough immortality for me.
The only mental tool by means of which a very finite piece of reasoning can cover a myriad cases is called 'abstraction'.
A scientific discipline emerges with the definite purpose of making certain phenomena comprehensible, i.e. of creating an appropriate conceptual framework.
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.
We 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.