Edsger W. Dijkstra
From Wikiquote
(Redirected from Edsger Dijkstra)
Edsger W. Dijkstra (1930-05-11 – 2002-08-06) was a Dutch computer scientist, and winner of the 1972 Turing Award. He was an early and influential proponent of "structured programming."
Contents |
[edit] Sourced
- I think of the company advertising "Thought Processors" or the college pretending that learning BASIC suffices or at least helps, whereas the teaching of BASIC should be rated as a criminal offence: it mutilates the mind beyond recovery.
- Testing shows the presence, not the absence of bugs
- Source: J.N. Buxton and B. Randell, eds, Software Engineering Techniques, April 1970, p. 21. Report on a conference sponsored by the NATO Science Committee, Rome, Italy, 27–31 October 1969. Possibly the earliest documented use of the famous quote.
- Program testing can be used to show the presence of bugs, but never to show their absence!
- Source: Notes On Structured Programming, 1972, at the end of section 3, On The Reliability of Mechanisms. EWD249 (1970).
- There are many different styles of composition. I characterize them always as Mozart versus Beethoven. When Mozart began to write at that time he had the composition ready in his mind. He wrote the manuscript and it was 'aus einem Guss' (casted as one). And it was also written very beautiful. Beethoven was an indecisive and a tinkerer and wrote down before he had the composition ready and plastered parts over to change them. There was a certain place where he plastered over nine times and one did remove that carefully to see what happened and it turned out the last version was the same as the first one.
- Source: Denken als discipline, a program from Dutch public TV broadcaster VPRO from April 10th, 2001 about Dijkstra, with many references, among other things Video (Broadband), Video, Transcript
- The question of whether Machines Can Think... is about as relevant as the question of whether Submarines Can Swim.
- The competent programmer is fully aware of the limited size of his own skull. He therefore approaches his task with full humility, and avoids clever tricks like the plague.
- Source: EWD340
- Elegance is not a dispensable luxury but a quality that decides between success and failure.
- Source: EWD1284
- 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?
- Source: EWD648
- Simplicity 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.
- Write a paper promising salvation, make it a 'structured' something or a 'virtual' something, or 'abstract', 'distributed' or 'higher-order' or 'applicative' and you can almost be certain of having started a new cult.
- For me, the first challenge for computing science is to discover how to maintain order in a finite, but very large, discrete universe that is intricately intertwined. And a second, but not less important challenge is how to mould what you have achieved in solving the first problem, into a teachable discipline: it does not suffice to hone your own intellect (that will join you in your grave), you must teach others how to hone theirs. The more you concentrate on these two challenges, the clearer you will see that they are only two sides of the same coin: teaching yourself is discovering what is teachable.
- When we had no computers, we had no programming problem either. When we had a few computers, we had a mild programming problem. Confronted with machines a million times as powerful, we are faced with a gigantic programming problem.
- 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. And you know what incurable diseases do: they invite the quacks and charlatans in, who in this case take the form of Software Engineering gurus.
- It is not the task of the University to offer what society asks for, but to give what society needs.
- Probably I am very naive, but I also think I prefer to remain so, at least for the time being and perhaps for the rest of my life.
- (Refering to his conclusion to the Barber paradox or Russell's paradox.)
- Source: EWD 923A: Where is Russell's paradox?
- When I came back from Munich, it was September, and I was Professor of Mathematics at the Eindhoven University of Technology. Later I learned that I had been the Department's third choice, after two numerical analysts had turned the invitation down; the decision to invite me had not been an easy one, on the one hand because I had not really studied mathematics, and on the other hand because of my sandals, my beard and my "arrogance" (whatever that may be).
- Source: EWD 1166: "From my Life"
- 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.
- Several people have told me that my inability to suffer fools gladly is one of my main weaknesses.
- On Our Inability To Do Much.
- Source: Chapter title in "Structured Programming", O.J. Dahl, E.W. Dijkstra, and C.A.R. Hoare. Academic Press, 1972 ISBN 0122005503
- Thank goodness we don't have only serious problems, but ridiculous ones as well.
- Source: EWD475, "A Letter to My Old Friend Jonathan"; p. 101 in Dijkstra, Edsger (1982). Selected Writings on Computing. Berlin: Springer-Verlag. ISBN 9780387906522.
[edit] The Humble Programmer (1972)
1972 Turing Award Lecture[1], Communications of the ACM 15 (10), October 1972: pp. 859–866
- We must be very careful when we give advice to younger people: sometimes they follow it!
- The major cause [of the software crisis] is that the machines have become several orders of magnitude more powerful! To put it quite bluntly: as long as there were no machines, programming was no problem at all; when we had a few weak computers, programming became a mild problem, and now we have gigantic computers, programming has become an equally gigantic problem. In this sense the electronic industry has not solved a single problem, it has only created them, it has created the problem of using its products.
- FORTRAN's tragic fate has been its wide acceptance, mentally chaining thousands and thousands of programmers to our past mistakes.
- LISP has been jokingly described as "the most intelligent way to misuse a computer". I think that description a great compliment because it transmits the full flavor of liberation: it has assisted a number of our most gifted fellow humans in thinking previously impossible thoughts.
- When FORTRAN has been called an infantile disorder, full PL/1, with its growth characteristics of a dangerous tumor, could turn out to be a fatal disease.
- 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.
- Program testing can be a very effective way to show the presence of bugs, but it is hopelessly inadequate for showing their absence.
- Compare more succinct phrasings cited above.
- The effective exploitation of his powers of abstraction must be regarded as one of the most vital activities of a competent programmer.
[edit] How do we tell truths that might hurt? (1975)
How do we tell truths that might hurt? (numbered EWD498, written 1975) was written as a series of aphorisms, and is the source of several popular quotations. It was also published in Selected Writings on Computing:A Personal Perspective.
- The use of COBOL cripples the mind; its teaching should, therefore, be regarded as a criminal offense.
- APL is a mistake, carried through to perfection. It is the language of the future for the programming techniques of the past: it creates a new generation of coding bums.
- FORTRAN, 'the infantile disorder', by now nearly 20 years old, is hopelessly inadequate for whatever computer application you have in mind today: it is now too clumsy, too risky, and too expensive to use.
- In the good old days physicists repeated each other's experiments, just to be sure. Today they stick to FORTRAN, so that they can share each other's programs, bugs included.
- 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.
- Besides a mathematical inclination, an exceptionally good mastery of one's native tongue is the most vital asset of a competent programmer.
- Simplicity is prerequisite for reliability.
- Programming is one of the most difficult branches of applied mathematics; the poorer mathematicians had better remain pure mathematicians.
- We can found no scientific discipline, nor a hearty profession, on the technical mistakes of the Department of Defense and, mainly, one computer manufacturer.
- About the use of language: it is impossible to sharpen a pencil with a blunt axe. It is equally vain to try to do it with ten blunt axes instead.
[edit] Unsourced
- Computer Science is no more about computers than astronomy is about telescopes.
- 2 or more, use a for
[edit] Misattributed
- Go To statement considered harmful
- Source: From the title to a letter in CACM 11, 3 (March, 1968). However The original title of "A Case against the GO TO Statement" (EWD215, PDF here, ACM has its own copy online) was changed by the editor Niklaus Wirth, to speed up publication. Dijkstra explains it himself in EWD1308 (see near the end of the article).
[edit] About E.W. Dijkstra
- You probably know that arrogance, in computer science, is measured in nanodijkstras.
[edit] External links
- E. W. Dijkstra Archive - the manuscripts of Edsger W. Dijkstra