Edsger Dijkstra

Image of Edsger Dijkstra
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.
- Edsger Dijkstra
Collection: Teaching
Image of Edsger Dijkstra
Please don't fall into the trap of believing that I am terribly dogmatical about the go to statement. I have the uncomfortable feeling that others are making a religion out of it, as if the conceptual problems of programming could be solved by a single trick, by a simple form of coding discipline!
- Edsger Dijkstra
Collection: Believe
Image of Edsger Dijkstra
In this respect a program is like a poem: you cannot write a poem without writing it. Yet people talk about programming as if it were a production process and measure "programmer productivity" in terms of "number of lines of code produced". In so doing they book that number on the wrong side of the ledger: we should always refer to "the number of lines of code spent".
- Edsger Dijkstra
Collection: Book
Image of Edsger Dijkstra
A most important, but also most elusive, aspect of any tool is its influence on the habits of those who train themselves in its use. If the tool is a programming language this influence is, whether we like it or not, an influence on our thinking habits.... A programming language is a tool that has profound influence on our thinking habits.
- Edsger Dijkstra
Collection: Learning
Image of Edsger Dijkstra
... as a slow-witted human being I have a very small head and I had better learn to live with it and to respect my limitations and give them full credit, rather than to try to ignore them, for the latter vain effort will be punished by failure.
- Edsger Dijkstra
Collection: Giving
Image of Edsger Dijkstra
Mentally mutilated potential programmers beyond hope of regeneration.
- Edsger Dijkstra
Collection: Regeneration
Image of Edsger Dijkstra
Beauty is our business.
- Edsger Dijkstra
Collection: Programming
Image of Edsger Dijkstra
The use of anthropomorphic terminology forces you linguistically to adopt an operational view. And it makes it practically impossible to argue about programs independently of their being executed.
- Edsger Dijkstra
Collection: Views
Image of Edsger Dijkstra
The problems of the real world are primarily those you are left with when you refuse to apply their effective solutions.
- Edsger Dijkstra
Collection: Real
Image of Edsger Dijkstra
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.
- Edsger Dijkstra
Collection: Appreciation
Image of Edsger Dijkstra
In their capacity as a tool, computers will be but a ripple on the surface of our culture. In their capacity as intellectual challenge, they are without precedent in the cultural history of mankind.
- Edsger Dijkstra
Collection: Challenges
Image of Edsger Dijkstra
PL/1, the fatal disease, belongs more to the problem set than to the solution set.
- Edsger Dijkstra
Collection: Humorous
Image of Edsger Dijkstra
Progress is possible only if we train ourselves to think about programs without thinking of them as pieces of executable code.
- Edsger Dijkstra
Collection: Learning
Image of Edsger Dijkstra
Computer science has as much to do with computers as astronomy has to do with telescopes.
- Edsger Dijkstra
Collection: Telescopes
Image of Edsger Dijkstra
There is very little point in trying to urge the world to mend its ways as long as that world is still convinced that its ways are perfectly adequate.
- Edsger Dijkstra
Collection: Long
Image of Edsger Dijkstra
APL is a mistake, carried through to perfection.
- Edsger Dijkstra
Collection: Mistake
Image of Edsger Dijkstra
When we take the position that it is not only the programmer's responsibility to produce a correct program but also to demonstrate its correctness in a convincing manner, then the above remarks have a profound influence on the programmer's activity: the object he has to produce must be usefully structured.
- Edsger Dijkstra
Collection: Responsibility
Image of Edsger Dijkstra
It is a mistake to think that programmers wares are programs. Programmers have to produce trustworthy solutions and present it in the form of cogent arguments. Programs source code is just the accompanying material to which these arguments are to be applied to.
- Edsger Dijkstra
Collection: Mistake
Image of Edsger Dijkstra
Beware of "the real world". A speaker's apeal to it is always an invitation not to challenge his tacit assumptions.
- Edsger Dijkstra
Collection: Real
Image of Edsger Dijkstra
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.
- Edsger Dijkstra
Collection: Engineering
Image of Edsger Dijkstra
Industry suffers from the managerial dogma that for the sake of stability and continuity, the company should be independent of the competence of individual employees.
- Edsger Dijkstra
Collection: Motivational
Image of Edsger Dijkstra
In 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 Dijkstra
Collection: Real
Image of Edsger Dijkstra
Yes, 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 Dijkstra
Collection: Learning
Image of Edsger Dijkstra
Our intellectual powers are rather geared to master static relations and that our powers to visualize processes evolving in time are relatively poorly developed. For that reason we should do (as wise programmers aware of our limitations) our utmost to shorten the conceptual gap between the static program and the dynamic process, to make the correspondence between the program (spread out in text space) and the process (spread out in time) as trivial as possible.
- Edsger Dijkstra
Collection: Wise
Image of Edsger Dijkstra
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.
- Edsger Dijkstra
Collection: Thinking
Image of Edsger Dijkstra
LISP has jokingly been described as "the most intelligent way to misuse a computer." I think that description is a great compliment because it transmits the full flavour of liberation: it has assisted a number of our most gifted fellow humans in thinking previously impossible thoughts.
- Edsger Dijkstra
Collection: Intelligent
Image of Edsger Dijkstra
We are all shaped by the tools we use, in particular: the formalisms we use shape our thinking habits, for better or for worse, and that means that we have to be very careful in the choice of what we learn and teach, for unlearning is not really possible.
- Edsger Dijkstra
Collection: Learning
Image of Edsger Dijkstra
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.
- Edsger Dijkstra
Collection: Today
Image of Edsger Dijkstra
The effective exploitation of his powers of abstraction must be regarded as one of the most vital activities of a competent programmer.
- Edsger Dijkstra
Collection: Exploitation
Image of Edsger Dijkstra
It used to be the program's purpose to instruct our computers; it became the computer's purpose to execute our programs.
- Edsger Dijkstra
Collection: Purpose
Image of Edsger Dijkstra
If there is one 'scientific' discovery I am proud of, it is the discovery of the habit of writing without publication in mind.
- Edsger Dijkstra
Collection: Writing
Image of Edsger Dijkstra
So-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 Dijkstra
Collection: Rude
Image of Edsger Dijkstra
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.
- Edsger Dijkstra
Collection: Years
Image of Edsger Dijkstra
John von Neumann draws attention to what seemed to him a contrast. He remarked that for simple mechanisms, it is often easier to describe how they work than what they do, while for more complicated mechanisms, it is usually the other way around.
- Edsger Dijkstra
Collection: Learning
Image of Edsger Dijkstra
In the software business there are many enterprises for which it is not clear that science can help them; that science should try is not clear either.
- Edsger Dijkstra
Collection: Trying
Image of Edsger Dijkstra
Besides a mathematical inclination, an exceptionally good mastery of one's native tongue is the most vital asset of a competent programmer.
- Edsger Dijkstra
Collection: Learning
Image of Edsger Dijkstra
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.
- Edsger Dijkstra
Collection: Dirty
Image of Edsger Dijkstra
Too few people recognize that the high technology so celebrated today is essentially a mathematical technology.
- Edsger Dijkstra
Collection: Technology
Image of Edsger Dijkstra
If we wish to count lines of code, we should not regard them as "lines produced" but as "lines spent."
- Edsger Dijkstra
Collection: Learning
Image of Edsger Dijkstra
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 Dijkstra
Collection: Powerful
Image of Edsger Dijkstra
The prisoner falls in love with his chains.
- Edsger Dijkstra
Collection: Falling In Love
Image of Edsger Dijkstra
When building sand castles on the beach, we can ignore the waves but should watch the tide.
- Edsger Dijkstra
Collection: Beach
Image of Edsger Dijkstra
The tools we use have a profound and devious influence on our thinking habits, and therefore on our thinking abilities.
- Edsger Dijkstra
Collection: Learning
Image of Edsger Dijkstra
Don'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 Dijkstra
Collection: Fall
Image of Edsger Dijkstra
The computing scientist's main challenge is not to get confused by the complexities of his own making.
- Edsger Dijkstra
Collection: Confused
Image of Edsger Dijkstra
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 Dijkstra
Collection: Luxury
Image of Edsger Dijkstra
Brainpower is by far our scarcest resource.
- Edsger Dijkstra
Collection: Resources
Image of Edsger Dijkstra
We must be very careful when we give advice to younger people; sometimes they follow it!
- Edsger Dijkstra
Collection: People
Image of Edsger Dijkstra
In the wake of the Cultural Revolution and now of the recession I observe a mounting pressure to co-operate and to promote "teamwork." For its anti-individualistic streak, such a drive is of course highly suspect; some people may not be so sensitive to it, but having seen the Hitlerjugend in action suffices for the rest of your life to be very wary of "team spirit." Very.
- Edsger Dijkstra
Collection: Teamwork