May 14

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

50 Responses to “Classic Programming Quotes”

  1. By Donato on May 15th, 2009 at 1:57 am

    haha, you made my day :) truly a beautiful collection of quotes :)

  2. By 22条经典的编程引言 | 酷壳 on May 15th, 2009 at 4:19 am

    [...] 文章:来源 [...]

  3. By Speaker-to-Animals on May 15th, 2009 at 5:48 am

    The author of the theory and practice quote is NOT unknown; it’s Yogi Berra.

  4. By Anonymous on May 15th, 2009 at 6:19 am

    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.

  5. By Anonymous on May 15th, 2009 at 7:08 am

    We’ve reached a new pinnacle in agile programming: we’re shipping the VM – Loek Schoenmakers

  6. By Adam Pope on May 15th, 2009 at 8:34 am

    Thanks guys, I’ve updated those errors.

  7. By ducktail on May 15th, 2009 at 9:40 am

    I want to improve the world, but God wouldn’t give me the source code.

    - dunno where it’s from

  8. By zorg 421 on May 15th, 2009 at 10:01 am

    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.

  9. By Rui Serrano on May 15th, 2009 at 10:49 am

    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.

  10. By elesk on May 15th, 2009 at 11:26 am

    “You should name a variable using the same care with which you name a first-born child.”
    - James O. Coplien

  11. By Mike on May 15th, 2009 at 11:55 am

    The difference between theory and practice is smaller in theory than in practice.

  12. By Adam Pope on May 15th, 2009 at 12:13 pm

    Thanks everybody! Loving the Stan Kelly-Bootle by zorg! Keep ‘em coming!

  13. By Paul leader on May 15th, 2009 at 12:37 pm

    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.

  14. By Keith Wright on May 15th, 2009 at 1:20 pm

    “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.”

  15. By Neon on May 15th, 2009 at 1:34 pm

    I seriously need these as a widget, what a marvelous article for a Friday afternoon.

    Thanks!

  16. By Gord on May 15th, 2009 at 1:45 pm

    Often used in design meetings and I’ve never known the source.

    “Features, quality, time: pick two.”

  17. By Paul leader on May 15th, 2009 at 2:12 pm

    “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.

  18. By Jude on May 15th, 2009 at 2:30 pm

    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

  19. By Twitted by timothymarshall on May 15th, 2009 at 2:34 pm

    [...] This post was Twitted by timothymarshall – Real-url.org [...]

  20. By Chris on May 15th, 2009 at 2:52 pm

    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

  21. By Nev on May 15th, 2009 at 3:03 pm

    “All language designers are arrogant. Goes with the territory… :-)
    - Larry Wall, 1991

  22. By Classic Programming Quotes | Storm Consultancy Blog on May 15th, 2009 at 3:30 pm

    [...] : Delicious-IT | Date : May 15 2009 | Views : 1 views | Total Word : 9 | Print this Page! | Permalink! [...]

  23. By nathanael's status on Friday, 15-May-09 15:41:21 UTC - Identi.ca on May 15th, 2009 at 3:41 pm

    [...] Lustig das, und im Kern so wahr… http://www.storm-consultancy.com/blog/other/classic-programming-quotes/ [...]

  24. By Matt on May 15th, 2009 at 4:01 pm

    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.

  25. By Twitted by franks on May 15th, 2009 at 4:07 pm

    [...] This post was Twitted by franks – Real-url.org [...]

  26. By rosskendall's status on Friday, 15-May-09 16:21:01 UTC - Identi.ca on May 15th, 2009 at 4:21 pm

    [...] Some Classic Programming Quotes – http://www.storm-consultancy.com/blog/other/classic-programming-quotes/ [...]

  27. By jlp on May 15th, 2009 at 4:42 pm

    Greer’s Third Law of Computing: A computer does what you tell it to do, not what you want it to do.

  28. By John on May 15th, 2009 at 5:50 pm

    Everything should be made as simple as possible, but no simpler. -Albert Einstein

  29. By Tony on May 15th, 2009 at 6:40 pm

    (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.

  30. By Eric Jablow on May 15th, 2009 at 7:54 pm

    The nickname of Lawrence Peter “Yogi” Berra has but one ‘g’.

  31. By Eduardo T. Cardoso on May 15th, 2009 at 8:19 pm

    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

  32. By sinth on May 15th, 2009 at 11:01 pm

    “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:

  33. By Molly Jo on May 16th, 2009 at 2:14 am

    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.

  34. By Programming quotes on May 16th, 2009 at 5:34 am

    [...] с одного сайта только потому, что в будущем сайт может исчезнуть, а [...]

  35. By Casper Bang on May 16th, 2009 at 8:45 am

    “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.

  36. By プログラミング格言集 on May 16th, 2009 at 8:54 pm

    [...] psychopathより。 [...]

  37. By Richard Foersom on May 17th, 2009 at 1:27 am

    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

  38. By Twitted by brohoward on May 17th, 2009 at 11:54 am

    [...] This post was Twitted by brohoward – Real-url.org [...]

  39. By John "Z-Bo" Zabroski on May 17th, 2009 at 4:10 pm

    “[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.

  40. By Tom on May 18th, 2009 at 12:25 pm

    If it aint broke then it don’t have enough features yet

  41. By Programming Quotes « Strange Quark’s on May 19th, 2009 at 10:21 am

    [...] 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 [...]

  42. By David Benn on May 19th, 2009 at 10:30 am

    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/

  43. By Cory on May 19th, 2009 at 10:36 am

    “Three rules of optimization: 1. Optimize Later 2. Optimize Later 3. Optimize Later” – Author Unknown

  44. By Heiko on May 19th, 2009 at 2:17 pm

    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”

  45. By jota on May 19th, 2009 at 5:03 pm

    [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…

  46. By Gilson on May 19th, 2009 at 8:52 pm

    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”.

  47. By Nicola on May 20th, 2009 at 11:51 am

    This is one of my favorite and very true:

    “Those who don’t understand UNIX are condemned to reinvent it, poorly.” – Henry Spencer

  48. By Curt Sampson on June 23rd, 2009 at 3:05 pm

    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:

    A number of these phenomena have been bundled under the name “Software
    Engineering”. As economics is known as “The Miserable Science”, software
    engineering should be known as “The Doomed Discipline”, doomed because
    it cannot even approach its goal since its goal is self-contradictory.
    Software engineering, of course, presents itself as another worthy
    cause, but that is eyewash: if you carefully read its literature and
    analyse what its devotees actually do, you will discover that software
    engineering has accepted as its charter “How to program if you cannot.”.

  49. By Joke thread - Arkansas (AR) - Page 51 - City-Data Forum on July 7th, 2009 at 12:43 am

    [...] [...]

  50. By FizzBuzz » Bookmark Shaving #6 on October 25th, 2009 at 4:40 pm

    [...] http://www.storm-consultancy.com/blog/other/classic-programming-quotes/ [...]

Leave a Reply