Explore the wonderful quotes under this tag
Some programming languages manage to absorb change, but withstand progress.
Sep 10, 2025
Programming languages are like girlfriends: The new one is better because *you* are better.
That language is an instrument of human reason, and not merely a medium for the expression of thought, is a truth generally admitted.
Most of you are familiar with the virtues of a programmer. There are three, of course: laziness, impatience, and hubris.
Premature optimization is the root of all evil in programming.
A language that doesn't affect the way you think about programming is not worth knowing.
I made up the term "object-oriented," and I can tell you I did not have C++ in mind.
The unavoidable price of reliability is simplicity.
The only way to learn a new programming language is by writing programs in it.
We should forget about small efficiencies, say about 97% of the time: premature optimization is the root of all evil.
Premature optimization is the root of all evil.
The problem is never how to get new, innovative thoughts into your mind, but how to get old ones out.
We teachers make the road, others will make the journey.
I was eventually persuaded of the need to design programming notations so as to maximize the number of errors which cannot be made, or if made, can be reliably detected at compile time.
I think it is inevitable that people program poorly. Training will not substantially help matters. We have to learn to live with it.
FORTRAN is not a flower but a weed - it is hardy, occasionally blooms, and grows in every computer.
To treat programming scientifically, it must be possible to specify the required properties of programs precisely. Formality is certainly not an end in itself. The importance of formal specifications must ultimately rest in their utility -in whether or not they are used to improve the quality of software or to reduce the cost of producing and maintaining software.
The purpose of computing is insight, not numbers.
Shall I tell you the secret of the true scholar? It is this: every man I meet is my master in some point, and in that I learn of him.
A process cannot be understood by stopping it. Understanding must move with the flow of the process, must join it and flow with it.
Simple things should be simple and complex things should be possible.
Computers are good at following instructions, but not at reading your mind.
When someone says, "I want a programming language in which I need only say what I want done," give him a lollipop.
Simplicity does not precede complexity, but follows it.
More computing sins are committed in the name of efficiency (without necessarily achieving it) than for any other single reason - including blind stupidity.
The value of a prototype is in the education it gives you, not in the code itself.
The structure of a software system provides the ecology in which code is born, matures, and dies. A well-designed habitat allows for the successful evolution of all the components needed in a software system.
Code should run as fast as necessary, but no faster; something important is always traded away to increase speed.
When certain concepts of TeX are introduced informally, general rules will be stated; afterwards you will find that the rules aren't strictly true. In general, the later chapters contain more reliable information than the earlier ones do. The author feels that this technique of deliberate lying will actually make it easier for you to learn the ideas. Once you understand a simple but false rule, it will not be hard to supplement that rule with its exceptions.
If you want truly to understand something, try to change it.
If the only tool you have is a hammer, it's hard to eat spaghetti.
If you only have a hammer, you tend to see every problem as a nail.
Lisp isn't a language, it's a building material.
It has been discovered that C++ provides a remarkable facility for concealing the trival details of a program - such as where its bugs are.
It's [programming] the only job I can think of where I get to be both an engineer and an artist. There's an incredible, rigorous, technical element to it, which I like because you have to do very precise thinking. On the other hand, it has a wildly creative side where the boundaries of imagination are the only real limitation.
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?
It should be noted that no ethically-trained software engineer would ever consent to write a DestroyBaghdad procedure. Basic professional ethics would instead require him to write a DestroyCity procedure, to which Baghdad could be given as a parameter.
I think that it's extraordinarily important that we in computer science keep fun in computing. When it started out, it was an awful lot of fun. Of course, the paying customers got shafted every now and then, and after a while we began to take their complaints seriously. We began to feel as if we really were responsible for the successful, error-free perfect use of these machines. I don't think we are. I think we're responsible for stretching them, setting them off in new directions, and keeping fun in the house. I hope the field of computer science never loses its sense of fun.
Most programming languages contain good parts and bad parts. I discovered that I could be better programmer by using only the good parts and avoiding the bad parts.
The C language combines all the power of assembly language with all the ease-of-use of assembly language.
As a rule, software systems do not work well until they have been used, and have failed repeatedly, in real applications.
The discipline of programming is most like sorcery. Both use precise language to instruct inanimate objects to do our bidding. Small mistakes in programs or spells can lead to completely unforseen behavior: e.g., see the story, "The Sorcerer's Apprentice". Neither study is easy: "...her [Galinda's] early appetite for sorcery had waned once she'd heard what a grind it was to learn spells and, worse, to understand them." from the book "Wicked" by G. Maguire.
Any programming language is at its best before it is implemented and used. Anything is possible, anything can happen. On a flimsy ground of reality, imagination spins marvelous patterns.
Example isn't another way to teach, it is the only way to teach.
Beauty is more important in computing than anywhere else in technology because software is so complicated. Beauty is the ultimate defense against complexity. ... The geniuses of the computer field, on the the other hand, are the people with the keenest aesthetic senses, the ones who are capable of creating beauty. Beauty is decisive at every level: the most important interfaces, the most important programming languages, the winning algorithms are the beautiful ones.
Awaken people's curiosity. It is enough to open minds, do not overload them. Put there just a spark.
Who dares to teach must never cease to learn.
Increasingly, people seem to misinterpret complexity as sophistication, which is baffling -- the incomprehensible should cause suspicion rather than admiration.
Design and programming are human activities; forget that and all is lost.
The magic of myth and legend has come true in our time. One types the correct incantation on a keyboard, and a display screen comes to life, showing things that never were nor could be.... The computer resembles the magic of legend in this respect, too. If one character, one pause, of the incantation is not strictly in proper form, the magic doesn't work. Human beings are not accustomed to being perfect, and few areas of human activity demand it. Adjusting to the requirement for perfection is, I think, the most difficult part of learning to program.