Explore the wonderful quotes under this tag
[Emacs] is written in Lisp, which is the only computer language that is beautiful.
Sep 10, 2025
Computer languages differ not so much in what they make possible, but in what they make easy.
When teaching a rapidly changing technology, perspective is more important than content.
The greatest obstacle to discovery is not ignorance - it is the illusion of knowledge.
If you stay up late and you have another hour of work to do, you can just stay up another hour later without running into a wall and having to stop. Whereas it might take three or four hours if you start over, you might finish if you just work that extra hour. If you're a morning person, the day always intrudes a fixed amount of time in the future. So it's much less efficient. Which is why I think computer people tend to be night people - because a machine doesn't get sleepy.
Software is like entropy. It is difficult to grasp, weighs nothing, and obeys the second law of thermodynamics; i.e. it always increases.
Let us change our traditional attitude to the construction of programs. Instead of imagining that our main task is to instruct a computer what to do, let us concentrate rather on explaining to human beings what we want a computer to do.
A programming language is low level when its programs require attention to the irrelevant.
The best programmers are not marginally better than merely good ones. They are an order-of-magnitude better, measured by whatever standard: conceptual creativity, speed, ingenuity of design, or problem-solving ability.
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.
The value of a prototype is in the education it gives you, not in the code itself.
We can think of descriptions almost as computer languages, an operative description that only deals with very simple operations. Its code is sex - Male, female, dark, light, up down, in out - its the language of duality.
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'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.
A computer once beat me at chess, but it was no match for me at kick boxing.
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.
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.
Example isn't another way to teach, it is the only way to teach.
Human languages tend to be much more ambiguous than computer languages because humans are much smarter about interpreting the context.
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.
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.