Software Programming Quotes to Live by


In no particular order:

If Java had true garbage collection, most programs would delete themselves upon execution.
— Robert Sewell


XML is like violence – if it doesn’t solve your problems, you are not using enough of it.
— Unknown


Linux is only free if your time has no value.
— Jamie Zawinski


Documentation is like sex; when it's good, it's very, very good, and when it's bad, it's better than nothing.
— Dick Brandon


Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live.
— Rick Osborne


There are only two kinds of programming languages: those people always bitch about and those nobody uses.
— Bjarne Stroustrup


I love deadlines. I like the whooshing sound they make as they fly by.
— Douglas Adams


QA Engineer walks into a bar. Orders a beer. Orders 0 beers. Orders 999999999 beers. Orders a lizard. Orders -1 beers. Orders a sfdeljknesv.
— Bill Sempf


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


Some people, when confronted with a problem, think “I know, I’ll use regular expressions.” Now they have two problems.
— Jamie Zawinski


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


The most amazing achievement of the computer software industry is its continuing cancellation of the steady and staggering gains made by the computer hardware industry.
— Henry Petroski


Perl – The only language that looks the same before and after RSA encryption.
— Keith Bostic


Walking on water and developing software from a specification are easy if both are frozen.
— Edward V Berard


There are two major products that come out of Berkeley: LSD and UNIX. We don’t believe this to be a coincidence.
— Jeremy S. Anderson


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


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


It always takes longer than you expect, even when you take into account Hofstadter’s Law.
— Hofstadter’s Law


In C++ it’s harder to shoot yourself in the foot, but when you do, you blow off your whole leg.
— Bjarne Stroustrup


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


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


Most software today is very much like an Egyptian pyramid with millions of bricks piled on top of each other, with no structural integrity, but just done by brute force and thousands of slaves.
— Alan Kay


C++ : Where friends have access to your private members.
— Gavin Russell Baker


If debugging is the process of removing software bugs, then programming must be the process of putting them in.
— E. W. Dijkstra


Programming is like sex: one mistake and you’re providing support for a lifetime.
— Michael Sinz


Computers are like bikinis. They save people a lot of guesswork.
— Sam Ewing


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


Measuring programming progress by lines of code is like measuring aircraft building progress by weight.
— Bill Gates


Two things are infinite: the universe and human stupidity; and I’m not sure about the universe.
— Albert Einstein


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


In theory, theory and practice are the same. In practice, they’re not.
— Yogi Berra


No matter how slick the demo is in rehearsal, when you do it in front of a live audience, the probability of a flawless presentation is inversely proportional to the number of people watching, raised to the power of the amount of money involved.
— Mark Gibbs


We should forget about small efficiencies, say about 97% of the time: premature optimization is the root of all evil.
— C. A. R. Hoare


Beware of bugs in the above code; I have only proved it correct, not tried it.
— Donald Knuth


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


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


In software, we rarely have meaningful requirements. Even if we do, the only measure of success that matters is whether our solution solves the customer’s shifting idea of what their problem is.
— Jeff Atwood


I’ve noticed lately that the paranoid fear of computers becoming intelligent and taking over the world has almost entirely disappeared from the common culture. Near as I can tell, this coincides with the release of MS-DOS.
— Larry DeLuca


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


There are only two hard problems in Computer Science: cache invalidation and naming things.
— Phil Karlton


There are two hard things in computer science: cache invalidation, naming things, and off-by-one errors.
— Jeff Atwood (@codinghorror) August 31, 2014


There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery
— Mathias Verraes (@mathiasverraes) August 14, 2015


Java is to JavaScript what Car is to Carpet.
— Chris Heilmann


What one programmer can do in one month, two programmers can do in two months.
— Fred Brooks

Bonus

List of excuses for programmers

Actually, that's a feature
Did you check for a virus on your system?
Don't worry, that value is only wrong half of the time
Even though it doesn't work, how does it feel?
Everything looks fine my end
How is that possible?
I broke that deliberately to do some testing
I can have a look but there's a lot of if statements in that code!
I can't make that a priority right now
I can't test everything
I couldn't find any examples of how that can be done anywhere else in the project
I couldn't find any examples of how that can be done anywhere online
I couldn't find any library that can even do that
I did a quick fix last time but it broke when we rebooted
I didn't anticipate that I would make any errors
I didn't create that part of the program
I didn't receive a ticket for it
I forgot to commit the code that fixes that
I had to do the project backwards as people demanded results out of order
I have never seen that before in my life
I have too many other high priority things to do right now
I haven't been able to reproduce that
I haven't had any experience with that before
I haven't had the chance to run that code yet
I haven't touched that code in weeks
I heard there was a solar flare today
I must have been stress testing our production server
I must not have understood what you were asking for
I thought he knew the context of what I was talking about
I thought I finished that
I thought I fixed that
I thought you signed off on that?
I told you yesterday it would be done by the end of today
I usually get a notification when that happens
I was just fixing that
I was told to stop working on that when something important came up
I'll have to fix that at a later date
I'm not familiar with it so I didn't fix it in case I made it worse
I'm not getting any error codes
I'm not sure as I've never had a look at how that works before
I'm still working on that as we speak
I'm surprised it works as well as it does
I'm surprised that was working at all
In the interest of efficiency I only check my email for that on a Friday
It can't be broken, it passes all unit tests
It must be a firewall issue
It must be a hardware problem
It must be because of a leap second
It must be because of a leap year
It probably won't happen again
It was working in my head
It worked yesterday
It works for me
It works, but it's not been tested
It would have taken twice as long to build it properly
It would take too long to rewrite the code from scratch
It's a browser compatibility issue
It's a character encoding issue
It's a known bug with the programming language
It's a known bug with the server software
It's a remote vendor issue
It's a third party application issue
It's always been like that
It's an unexpected emergent behaviour of several last minute abstractions
It's just some unlucky coincidence
It's never done that before
It's never shown unexpected behaviour like this before
It's not a code problem - our users need more training
Management insisted we wouldn't need to waste our time writing unit tests
Maybe somebody forgot to pay our hosting company
My time was split in a way that meant I couldn't do either project properly
No one told me so I was forced to assume which way to do that
Nobody asked me how long it would actually take
Nobody has ever complained about it
Oh, that was just a temporary fix
Oh, that was only supposed to be a placeholder
Oh, you said you DIDN'T want that to happen?
Our code quality is no worse than anyone else in the industry
Our hardware is too slow to cope with demand
Our internet connection must not be working
Our redundant systems must have failed as well
Somebody must have changed my code
That behaviour is in the original specification
That code seemed so simple I didn't think it needed testing
That code was written by the last guy
That error means it was successful
That feature was slated for phase two
That feature would be outside of the scope
That important email must have been marked as spam
That isn't covered by my job description
That process requires human oversight that nobody was providing
That was literally a one in a million error
That wasn't in the original specification
That worked perfectly when I developed it
That wouldn't be economically feasible
That's already fixed it just hasn't taken effect yet
That's interesting, how did you manage to make it do that?
That's not a bug it's a configuration issue
That's the fault of the graphic designer
The accounting department must have cancelled that subscription
The client must have been hacked
The client wanted it changed at the last minute
The code is compiling
The download must have been corrupted
The existing design makes it difficult to do the right thing
The marketing department made us put that there
The original specification contained conflicting requirements
The person responsible doesn't work here anymore
The problem seems to be with our legacy software
The program has never collected that information
The project manager said no one would want that feature
The project manager told me to do it that way
The request must have dropped some packets
The specifications were ambiguous
The third party API is not responding
The third party documentation doesn't exist
The third party documentation is wrong
The unit test doesn't cover that eventuality
The user must not know how to use it
The WYSIWYG must have produced an invalid output
There must be something strange in your data
There was too little data to bother with the extra functionality at the time
There were too many developers working on that same thing
There's currently a problem with our hosting company
THIS can't be the source of THAT
This code was not supposed to go in to production yet
This is a previously known bug you told me not to work on yet
We didn't have enough time to peer review the final changes
We outsourced that months ago
We should have updated our software years ago
We spent three months debugging it because we only had one month to build it
Well at least we know not to try that again
Well done, you found my easter egg!
Well, at least it displays a very pretty error
Well, that's a first
What did I tell you about using parts of the system you don't understand?
What did you type in wrong to get it to crash?
Where were you when the program blew up?
Why do you want to do it that way?
You can't use that version on your system
You must be missing some of the dependencies
You must have done something wrong
You must have the wrong version
You're doing it wrong
Your browser must be caching the old content