TLDR:
An ever growing list of quotations about computer science, with an emphasis on software maintenance. Started by Ken, updated by him and the SciTools staff. Feel free to share your favorite quote – [email protected]
Details:
Sometimes, the elegant implementation is a function. Not a method. Not a class. Not a framework. Just a function.
–John Carmack
Good code is code that can be understood by a junior engineer. Great code can be understood by a first year CS freshman. The best code is no code at all.
–Drunk Programmer (Reddit)
The cheapest, fastest and most reliable components of a computer system are those that aren’t there.
— Gordon Bell
Software is always the slave of its own history, its own legacy.
— Jaron Lanier
The thing I like the most is deleting code.
— Jason “Hack” Haslam, Senior Engineer, Scitools
We build our computer (systems) the way we build our cities: over time, without a plan, on top of ruins.
— Ellen Ullman
The realization came over me with full force that a good part of my life was going to be spent in finding errors in my own programs.
— Maurice Wilkes, Memoirs of a Computer Pioneer
A successful software tool is one that was used to do something undreamed of by its author.
— Stephen Johnson
(Note from Ken: We see examples of this almost every day with Understand).
Bad documentation is worse than no documentation.
— Unknown source
Premature optimization is the root of all evil.
— Donald Knuth
One of my most productive days was throwing away 1000 lines of code.
— Ken Thompson
Computer science is no more about computers than astronomy is about telescopes.
— Edsger Dijkstra*
Any fool can write code that a computer can understand. Good programmers write code that humans can understand.
— Martin Fowler
If debugging is the process of removing software bugs, then programming must be the process of putting them in.
— Edsger Dijkstra
The purpose of software engineering is to control complexity, not to create it.
–Pamela Zave
Before software can be reusable, it has first to be usable.
–Ralph Johnson
Optimization of clear code is easy. Clarification of optimized code is hard.
–Michael Feathers
All problems in CS can be solved by another level of indirection, except for the problem of too many layers of indirection.
–David Wheeler
Strive to add function by deleting code.
–Jon Bentley
No matter how slow you are writing clean code, you will always be slower if you make a mess.
–@UncleBobMartin (Twitter)
About 1,000 instructions is a reasonable upper limit for the complexity of problems now envisioned.
–John von Neumann (1946)
Hardware eventually fails. Software eventually works.
–Michael Hartung
Inside every large program is a small program trying to get out.
–Tony Hoare
Programming is a Dark Art, and it always will be. The programmer is fighting against the two most destructive forces in the universe: entropy and human stupidity. These are not things you can overcome with a “methodology” or on a schedule.
–Damian Conway
Debugging is like being the detective in a crime movie where you are also the murderer.
–Filipe Fortes
Code is like poetry; most of it shouldn’t have been written.
–David Jacobs
The problem with quick and dirty… is that dirty remains long after quick has been forgotten.
–Steve C. McConnell
Debugging is twice as hard as writing the code in the first place. Therefore, if you write code as cleverly as possible, you are, by definition, not smart enough to debug it.
–Brian W. Kernighan
Code is a liability, not an asset. So goal of software engineer is delivering the maximum amount of desired functionality at the cost of the least amount of code complexity, even as desired functionality evolves over time.
–Greg Brockman
Code never lies; comments sometimes do.
–Ron Jeffries
The enjoyment of one’s tools is an essential ingredient of successful work.
–Donald E. Knuth
A common fallacy is to assume authors of incomprehensible code will be able to express themselves clearly in comments.
–Kevlin Henney
No matter how slow you are writing clean code, you will always be slower if you make a mess.
–Bob Martin
A good programmer is someone who always looks both ways before crossing a one-way street.
–Doug Linder