A selection of our favourite, classic programming quotes from the some of the industries biggest names.
We should forget about small efficiencies, say about 97% of the time: premature optimization is the root of all evil
- C. A. R. Hoare
Walking on water and developing software from a specification are easy if both are frozen
- Edward V Berard
It always takes longer than you expect, even when you take into account Hofstadter’s Law.
- Hofstadter’s Law
Some people, when confronted with a problem, think “I know, I’ll use regular expressions.” Now they have two problems
- Jamie Zawinski
Debugging is twice as hard as writing the code in the first place. Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it.
- Brian Kernighan
Measuring programming progress by lines of code is like measuring aircraft building progress by weight.
- Bill Gates
PHP is a minor evil perpetrated and created by incompetent amateurs, whereas Perl is a great and insidious evil, perpetrated by skilled but perverted professionals.
- Jon Ribbens
On two occasions I have been asked, ‘Pray, Mr. Babbage, if you put into the machine wrong figures, will the right answers come out?’ I am not able rightly to apprehend the kind of confusion of ideas that could provoke such a question.”
- Charles Babbage
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live.
- Rick Osborne
Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the Universe trying to produce bigger and better idiots. So far, the Universe is winning.
- Rich Cook
I don’t care if it works on your machine! We are not shipping your machine!
- Ovidiu Platon
I have always wished for my computer to be as easy to use as my telephone; my wish has come true because I can no longer figure out how to use my telephone.
- Bjarne Stroustrup
A computer lets you make more mistakes faster than any other invention in human history, with the possible exceptions of handguns and tequila.
- Mitch Ratcliffe
If debugging is the process of removing software bugs, then programming must be the process of putting them in.
- E. W. Dijkstra
It is practically impossible to teach good programming style to students that have had prior exposure to BASIC. As potential programmers, they are mentally mutilated beyond hope of regeneration.
- E. W. Dijkstra
In theory, theory and practice are the same. In practice, they’re not.
- Yoggi Berra
Two things are infinite: the universe and human stupidity; and I’m not sure about the universe.
- Albert Einstein
Perl – The only language that looks the same before and after RSA encryption.
- Keith Bostic
I love deadlines. I like the whooshing sound they make as they fly by.
- Douglas Adams
Saying that Java is good because it works on all platforms is like saying anal sex is good because it works on all genders
- Unknown
XML is like violence – if it doesn’t solve your problems, you are not using enough of it.
- Unknown
Einstein argued that there must be simplified explanations of nature, because God is not capricious or arbitrary. No such faith comforts the software engineer.
- Fred Brooks
Do you know any other classics? Please share them with us in the comments, we’d love to hear them! If you enoyed this post, please consider sharing it with your friends on Digg, Twitter, Facebook or Delicious! Thanks for reading!
Follow Storm on Twitter | Become a Fan on Facebook
Tagged in: Funny Programming






haha, you made my day
truly a beautiful collection of quotes
[...] 文章:来源 [...]
The author of the theory and practice quote is NOT unknown; it’s Yogi Berra.
The first one was not from Donald Knuth, but Tony Hoare. http://en.wikipedia.org/wiki/C._A._R._Hoare. The full quote: “We should forget about small efficiencies, say about 97% of the time: premature optimization is the root of all evil”.
The first part is as important as the second part, 97% of the time premature optimization is the root of all evil, but 3% you can optimize your code.
We’ve reached a new pinnacle in agile programming: we’re shipping the VM – Loek Schoenmakers
Thanks guys, I’ve updated those errors.
I want to improve the world, but God wouldn’t give me the source code.
- dunno where it’s from
Any sufficiently complicated C or Fortran program contains an ad hoc informally-specified bug-ridden slow implementation of half of Common Lisp.
- Philip Greenspun
Should array indices start at 0 or 1? My compromise of 0.5 was rejected without, I thought, proper consideration.
- Stan Kelly-Bootle
Syntactic sugar leads to cancer of the semi-colon.
- Alan Perlis.
As a developer, and i had to use this quote more than one time:
“I have a deal with God. I don’t do miracles, and He doesn’t program.”
Greetings from Portugal.
Great Post.
“You should name a variable using the same care with which you name a first-born child.”
- James O. Coplien
The difference between theory and practice is smaller in theory than in practice.
Thanks everybody! Loving the Stan Kelly-Bootle by zorg! Keep ‘em coming!
Another one from Tony Hoare.
“There are two ways of constructing a software design; one way is to make it so simple that there are obviously no deficiencies, and the other way is to make it so complicated that there are no obvious deficiencies. The first method is far more difficult.”
It was the a particular favourite from when I used to work on safety critical systems where we used to do a lot of static analysis and code review to find bugs, rather than relying on testing (which is fine, so long as you understand it’s limitations).
It should be tattooed onto every computer science student at the point of graduation.
“A programmer is a device that converts caffeine into error messages.”
Not sure of the source, but it is from the Paul Erdos quote:
“A mathematician is a device that converts caffeine into theorems.”
I seriously need these as a widget, what a marvelous article for a Friday afternoon.
Thanks!
Often used in design meetings and I’ve never known the source.
“Features, quality, time: pick two.”
“Features, quality, time: pick two.”
That’s just a variant of the old “Fast, cheap, good: pick any two” which is an old truism from the world of real engineering/cars.
But still very much true.
Writing the first 90 percent of a computer program takes 90 percent of the time. The remaining ten percent also takes 90 percent of the time and the final touches also take 90 percent of the time. ~N.J. Rubenking
[...] This post was Twitted by timothymarshall – Real-url.org [...]
God wrote the Universe in C, thus explaining the great amount of disagreement over how to interpret the documentation. – Me, Usenet, late ’80s or early ’90s
“All language designers are arrogant. Goes with the territory…
”
- Larry Wall, 1991
[...] : Delicious-IT | Date : May 15 2009 | Views : 1 views | Total Word : 9 | Print this Page! | Permalink! [...]
[...] Lustig das, und im Kern so wahr… http://www.storm-consultancy.com/blog/other/classic-programming-quotes/ [...]
Not liking the homophobia of the anal sex one. Maybe reword:
“Saying that Java is good because it works on all platforms is like saying anal sex is good because it works on all species.”
There, now it’s only insulting furries and zoophiles.
[...] This post was Twitted by franks – Real-url.org [...]
[...] Some Classic Programming Quotes – http://www.storm-consultancy.com/blog/other/classic-programming-quotes/ [...]
Greer’s Third Law of Computing: A computer does what you tell it to do, not what you want it to do.
Everything should be made as simple as possible, but no simpler. -Albert Einstein
(Couldn’t get the Captcha image to come up in FF3 – trying in IE)
Great quotes and sadly all too true.
I know that when I write programs, I often add the ability to trace and debug sections of code, or at least to have detailed messages that tell me what is wrong. For example, instead of a single message that says “Invalid Item Code”, I would have messages that say “Item Not On File”, “Item Not Valid For Location”, “Item Not Authorized For Customer” etc… That way, when a production program doesn’t seem to be working, a user can’t just say that they are getting an error on an Item, when it turns out to be a valid code but not allowable for some reason. Having multiple error messages greatly reduces the error reporting to the support desk, it also serves to help in testing the program prior to it going into production.
My favorite quote is…
If architects designed buildings the way that programmers designed programs, the first woodpecker that came along would destroy civilization.
The nickname of Lawrence Peter “Yogi” Berra has but one ‘g’.
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.
– E. Dijkstra
“We know about as much about software quality problems as they knew about the Black Plague in the 1600s. We’ve seen the victims’ agonies and helped burn the corpses. We don’t know what causes it; we don’t really know if there is only one disease. We just suffer — and keep pouring our sewage into our water supply.”Tom Van Vleck:
I haven’t laughed so hard in a long time! Thank you so much for sharing these. My favorite is the psychopath maintainer one! Awesome.
[...] с одного сайта только потому, что в будущем сайт может исчезнуть, а [...]
“In C++ it’s harder to shoot yourself in the foot, but when you do, you blow off your whole leg”. – Bjarne Stoustrup.
“All problems in computer science can be solved by another level of indirection… except for the problem of too many layers of indirection”. – David Wheeler & Kevlin Henney.
[...] psychopathより。 [...]
Programs, like ships, sink in the C.
If Java had true garbage collection, most programs would delete themselves
upon execution. – Robert Sewell
Perl – $Just @when->$you ${thought} s/yn/tax/ &couldn\’t %get $worse;
Optimism is an occupational hazard of programming: feedback is the
treament. – Kent Beck
If we wish to count lines of code, we should not regard them as lines
produced but as lines spent. – Edsger Dijkstra
[...] This post was Twitted by brohoward – Real-url.org [...]
“[A]nd then it occurred to me that a computer is a stupid machine with the ability to do incredibly smart things, while computer programmers are smart people with the ability to do incredibly stupid things. They are, in short, a perfect match.” – Bill Bryson
“Beta. Software undergoes beta testing shortly before it’s released. Beta is Latin for ’still doesn’t work’.” – Author Unknown
“Version 1 of any software is full of bugs. Version 2 fixes all the bugs and is great. Version 3 adds all the things users ask for, but hides all the great stuff in Version 2.” – Fred Blechman
Tom DeMarco or Tom Cargill I believe came up with a variation of Nubenking’s quote above, by the way, and I thin he was the first.
If it aint broke then it don’t have enough features yet
[...] By dbenn Adam Pope recently wrote about Classic Programming Quotes. This reminded me that I’ve collected quotes on this page for several years. Lambda the [...]
Your post reminded me of the quotes I’ve collected over several years. Here’s a blog post I just wrote about that: hhttp://dbenn.wordpress.com/2009/05/19/programming-quotes/
“Three rules of optimization: 1. Optimize Later 2. Optimize Later 3. Optimize Later” – Author Unknown
a programmer in response to the warning on a packet of cigaretts, stating “warning ! smoking can cause cancer”:
“i am a programmer – I just care ’bout errors, not ’bout warnings”
[Your favorite programming language]
… is somewhat like teenage sex, everybody is talking about it, most are not doing it and those that are doing it, are doing it wrong.
I heard it with TDD and Java…
Another one (don’t know the author)
“There are only 10 types of people in the world: Those who understand binary, and those who don’t”.
This is one of my favorite and very true:
“Those who don’t understand UNIX are condemned to reinvent it, poorly.” – Henry Spencer
Edgar Dijkstra produced a long series of documents in longhand that are available in the E.W. Dijkstra Archive at utexas.edu. They’re fascinating; it happens that he’s an extremely good writer. His “counting lines of code,” from EWD1036, “On the cruelty of really teaching computing science,” has already been quoted here. One of my favourites is also from the same paper:
[...] [...]
[...] http://www.storm-consultancy.com/blog/other/classic-programming-quotes/ [...]
[...] You may find more interesting quotes about software and programmers on STORM blog [...]
[WORDPRESS HASHCASH] The comment’s server IP (77.79.226.19) doesn’t match the comment’s URL host IP (77.79.227.74) and so is spam.
If the designers of X-Windows built cars, there would be no fewer than five steering wheels hidden about the cockpit, none of which followed the same principles — but you’d be able to shift gears with your car stereo. Useful feature, that.
–Marcus J. Ranum, Digital Equipment Corporation
[...] God is not capricious or arbitrary. No such faith comforts the software engineer. – Fred Brooks [Read more..] __________________ Thanks for the support everyone! I'm on Twitter if you want to say [...]
What about a collection of “Programming Epigrams” by Allan Perlis ? They are here : http://www.cs.yale.edu/quotes.html
The Java quote about anal sex has always annoyed me simply because there are far more than two possible platforms on which a program might be deployed.
“I’ve done some of my best programming when drunk… and some of my best debugging the next day”.
- Keith Kornfeld, at Graphic Scanning Corp., 1979
“In C++ it’s harder to shoot yourself in the foot, but when you do, you blow off your whole leg”. – Bjarne Stoustrup.
“All problems in computer science can be solved by another level of indirection… except for the problem of too many layers of indirection”. http://www.mrplumberonline.com
“That which can be configured must be configured”
I think this is original with me, I’ve used it as a signature since the 90’s. Inspired by the invention of “wizards” and undocumented registration database entries in Win 95. Never assume your defaults are right. They aren’t.
(don’t know who coined this one)
“If OS’s were airplanes, then Windows is a commuter plane, uncomfortable, prone to delays, but usually gets you there; OS X is a private charter, expensive, but just works; and Linux is a collection of parts on the runway, which the passengers have to get assembled before the plane reaches the cliff at the end of the runway”
@Gary – I absolutely love the quote about the OSs – so true!
@Robin – I guess I have at least one thing in common with Keith Kornfield then!
“Wirth made a language acclaimed in theory, but useless in
practice. He appropriately named it after the guy who came
up with ‘Pascal’s Wager’.” – Anonymous
“The Most Significant Bit in any computer is the power switch.” – Anonymous
Novice electrician:
Why should I waste time and money getting the right color wire?
The electricity doesn’t care.
Experienced electrician:
Electricity is color-blind. Electricians are not.
— unknown
Novice programmer:
Why should I waste time commenting code? The computer doesn’t care.
Experienced programmer:
The computer is comment-blind. Programmers are not.
— Dr. Robert J. Meier 1980
“[P]rogramming is a job where Lovecraft meets tradecraft, all the time.” – Ken MacLeod
“I can write programs that control air traffic, intercept ballistic
missiles, reconcile bank accounts, control production lines.”
“So can I, and so can any man, but do they *work* when you do write them?” – Fred Brooks, after Shakespeare, “The Mythical Man-Month”
“[In programming, if] you know what you’re doing, three layers is
enough; if you don’t, even seventeen layers won’t help.” – Padlipsky
If you have any trouble sounding condescending, find a Unix user to show you how it’s done. – Scott Adams
“Sure, it’s easy to achieve partial obfuscation through pure stupidity, but for complete, systematic retardation, you need hard working great thinkers that put their best effort into it.” – Fredrik Johansson, on Windows NT
“The idea that an arbitrary naive human should be able to properly use a given tool without training or understanding is even more wrong for computing than it is for other tools (e.g. automobiles, airplanes, guns, power saws).” – Doug Gwyn
“The most likely way for the world to be destroyed, most experts agree, is by accident. That’s where we come in; we’re computer professionals. We cause accidents.” – Nathaniel Borenstein
“These modern kids don’t know the simple joy of saving four bytes of page-0 memory on a 6502 box.” – isomeme
“The tao is in all programming languages, but try to avoid using COBOL.” – Nicholas M. Moffitt
“One of the main reasons for the downfall of the Roman Empire was that, lacking zero, they had no way to indicate successful termination of their C programs.” – Robert Firth
“This code is too short to have a bug”
“Douglas Brotz”
“When debugging code, follow these 3 rules.
1. It’s the data.
2. It’s the data, even though you’ve checked the data and it is definitely not the data.
3. It’s the environment.
The trick is believing in rule #2.”