Storm Blog

Classic Programming Quotes

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

82 Responses to Classic Programming Quotes

  1. Pingback: 22条经典的编程引言 | 酷壳

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

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

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

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

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

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

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

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

  10. Pingback: Twitted by timothymarshall

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

  12. Pingback: Classic Programming Quotes | Storm Consultancy Blog

  13. Pingback: nathanael's status on Friday, 15-May-09 15:41:21 UTC - Identi.ca

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

  15. Pingback: Twitted by franks

  16. Pingback: rosskendall's status on Friday, 15-May-09 16:21:01 UTC - Identi.ca

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

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

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

  20. Pingback: Programming quotes

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

  22. Pingback: プログラミング格言集

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

  24. Pingback: Twitted by brohoward

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

  26. Pingback: Programming Quotes « Strange Quark’s

  27. 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/

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

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

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

  31. This is one of my favorite and very true:

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

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

  33. Pingback: Joke thread - Arkansas (AR) - Page 51 - City-Data Forum

  34. Pingback: FizzBuzz » Bookmark Shaving #6

  35. Pingback: A bunch of programmers quotes, part 2 | Robert Gawron

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

  37. Pingback: Classic Programming Quotes

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

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

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

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

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

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

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

  45. Bad programmers lament:-

    I have this great computer, but I think I’ll have to sell it.

    It SELDOM does what I want, but ALWAYS what i tell it!

    (aint that the truth)

  46. In my 40 years of programming, I have found only one law (Fullerton’s Law): If it isn’t tested, it has a bug in it. And one corollary: If there is a window, no matter how small, you will hit it.

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

  48. My absolute favorite: (from bash.org)

    #624194
    Fine, Java MIGHT be a good example of what a programming language should be like. But Java applications are good examples of what applications SHOULDN’T be like.

    and my own:
    “Using Java as a front-end for your security product, is like putting a pedophile in charge of a day-care center.”

  49. Pingback: Weekly Design News – Resources, Tutorials and Freebies (N.65) | Android

  50. The First Rule of Program Optimization:
    Don’t do it.
    The Second Rule of Program Optimization (for experts only!):
    Don’t do it yet.

    – Michael Jackson

  51. Computers are dumb. Programmers are just people who are smart enough to trick them into doing something that resembles what they want.

  52. “Computer science is no more about computers than astronomy is about telescopes,” -Edsger Dijkstra

    “There are only two kinds of programming languages: those people always bitch about and those nobody uses,” -Bjarne Stroustrup

    “Programming is like sex: one mistake and you’re providing support for a lifetime,” -Michael Sinz

    “The first 90% of the code accounts for the first 90% of the development time. The remaining 10% of the code accounts for the other 90% of the development time,” -Tom Cargil

  53. A designer knows he has achieved perfection not when there is nothing left to add, but when there is nothing left to take away.

    Antoine de Saint-Exupéry

Leave a Reply

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>