Stack OverflowGreat programming quotes
[+531] [637] epatel
[2008-09-12 10:39:20]
[ polls fun quotes ]

There are a lot of great programming quotes out there. Which do you like?

Today (Sept 12, 2008) I heard a new one from a friend, Lars-Gunnar, he said " Gud [1] finns i Emacs" (in Swedish). This basically means " God [2] is in Emacs". Still laughing about it here :) What he meant was that a function " gud is grand-unified-debugger [3]" is in Emacs.

A great one I think all programmers should know is The Three Great Virtues of a Programmer [4].

(16) I've got to stop reading this one, I've run out of votes 2 days in a row! - johnc
(9) i love reading these quotes as i wait for my app to compile - Steve Obbayi
(114) Yeh, but you realise 10 minutes after your app has compiled that you are still reading - johnc
For me, this question works as supplement to caffein. - trappedIntoCode
Closed? Are you F****ing kidding me? Reopen please. - Andrew Moore
(72) 282 voted up, 445 favorited, and 5 closed it all down. Welcome to StackOverflow. - serg
(21) Closing doesn't prevent voting, it prevents adding more answers. If you think that the people adding new 'great quotes' are reading every single one of the 500+ answers beforehand to avoid duplicates, you are sadly mistaken. If the site were designed to efficiently vote for polls like this (ie, a programming quote "kitten war") then having thousands of quotes with duplicates would be ok. Not so good for this site though. Alternately, if there were an easy way to avoid duplicates then it could work ok. As is, though, I don't believe there's a compelling reason to keep it open. - Adam Davis
dupe post!! Same question at… - waqasahmed
(5) @waqasahmed I wouldn't say that jokes and quotes are the same thing - epatel
This is a really good one. - Colour Blend
[+1533] [2008-09-12 12:23:22] Adam Davis

Walking on water and developing software from a specification are easy if both are frozen.

-- Edward V Berard

hey, great one! :D - Rodrigo
(28) Most excellent quote!! - Jere.Jones
I've never heard that one before but I liked it. So true... - spinodal
(20) +1. This would make developers like ice skaters. Don't spend too much time on triple lutz jumps, or you won't get very far. - flicken
this is a new one for me too, but I love it! - Jay
I heard Steve McConnel say something very similar. I belive it was "Requirements are like water, they are both easier to build on when frozen." - Jim Anderson
(1) first time and great - Robert Gould
(4) It's my wallpaper for sad times :) - furtelwart
(4) brilliant! one of the best quotes I've ever seen! - Mecki
(2) Great quote. I believe I first stumbled upon it when reading "Agile Estimation and Planning." - Krzysztof Koźmic
(1) definetelly the best!! - Ricardo Acras
(1) great quote!! I've used it as my IM status message for long time. - TheVillageIdiot
great quote! changing specs seem to happen to me every day :( - Chalkey
This should be better addressed to clients who don't know what they want. - Joset
(1) Simply great, I love this one - Prashant
(1) haha great quote :) - instanceofTom
(1) My technical manager just to replied to me saying this quote with: "That may be true, but I prefer to stick to the LATEST VERSION of the spec." Gotta love it ;) - Kyle Rozendo
(1) I love it! Sending that quote on to a few people... - Ed Schembor
(1) fantastic! i'm lovin it. - Raj More
(1) The first time I heard this quote I loved it. Not surprised to find it the highest upvoted out of all the quotes around. - wheaties
It's "ok". I don't like that this quote gives the wrong impression that a frozen spec is something to aspire to. That's what people who work under the waterfall process aim at. The ones that see "the business people" as completely separate from "the developer", and who are suprised when the project goes belly up in the end. - xcut
(1) The best quote i ever seen in my life... - Ram
(2) Please don't upvote just to keep the score on 1337 - FUZxxl
This the reason by which most programmers affected most & after large time they are blamed that they delivered nothing - Sanjay Jain
[+1207] [2008-09-12 11:03:47] Blorgbeard

Hofstadter's Law:

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

Brilliant! I'm going to use that one loads! - harriyott
This is a great one to cite when someone says, "what is recursion?" - Charles Roper
(239) To understand recursion, you first need to understand recursion :) - Ilya Ryzhenkov
This is great! +1 - Jason Bunting
(3) I predict this comment thread will be longer than I predict. - flicken
(40) Trying to account for this law, in my office we think the maximum time to deliver a project is bound by twice the estimate to the next unit of time. So, a 2 week estimate should never take more than 4 months. We've proven even this insufficient... - jonathan-stafford
(80) My brain just did a stack overflow. - Wyatt
(16) @Charles - It's even better when you know that Hofstadter was the author of "Göedel, Escher, Bach" a book that was entirely about self-referential systems in the world and in the brain. It's almost 30 years old and well worth a read.,_Escher,_Bach - Peter Rowell
(4) This statement is false - Charles Bretana
Gotta love the recursion. - felideon
(1) I like how this is modded up to 321, and it is a project management quote rather than a programming quote. This really shows you who actually reads this site. - jrockway
(3) I think it resonates with programmers because we're bad at project management. - Blorgbeard
From a recent e-mail, "I began writing GEB in mid-1972, and had never heard of memristors, nor have I ever heard of them before your email. I can't comment on any connection between them and neurons, since I know nothing about them. Best wishes -- Douglas Hofstadter." - Dave Jarvis
(41) To understand recursion, google it - weazl
You could say something similar about my personal budget. I always spend more money than I have accounted for. - JohannesH
(2) @weazl, loved that recursion is a suggested spelling for recursion when searching on google. Subtle joke indeed :) - Thorbjørn Ravn Andersen
6 people stack-overflowed and hit downvote by accident - Claudiu
@weazl Google apparently removed the feature :( Too bad! - Simon
I love the google search! "Did you mean: recursion" : ) - Yuji Tomita
Programmers never die. They are just cast into void. - Sanjay Jain
[+1091] [2008-09-12 11:12:38] asksol

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

-- Rick Osborne

(79) make it so bad he will die of shock before the second screen :) - BCS
(37) Great one, that should be on every programming IDE splash screen. - Rismo
(1) I'd feel sketchy posting this one up at work... - cdleary
Rick Osborne or Damian Conway?… - JB.
this one may cause panic :o) - spinodal
This is my new favourite quote. - Rich Adams
(3) Or John F. Woods, 1991-09-25? - JB.
(15) Especially true if you have to maintain your own code. - Colonel Sponsz
I thought it was Conway's. - tunnuz
Colonel Sponsz is on the money! - urig
Sorry for my lack of knowledge but who is Rick Osborne? - Johan
words to live by. - baash05
I find if you act like a "violent psychopath who knows where they live" your co-workers write better code if you have to maintain - Bob The Janitor
(37) This is exactly why I sometimes write apologies in my code comments. ;) - David Brown
I've seen that attributed to Martin Golding. - Quinn Taylor
I thought the quote came from Martin Golding? - Hace
I AM that violent psychopath!! - DJTripleThreat
(2) This is bad advice. Good code is easy for anyone to pick up an maintain, and psychopaths kill at random. As long as my code is bad enough, he may realize he needs me around to answer questions. - Brad
And hope he maintains a LOT of code, cause thou shall always write a bad code, and some code will never be refactored - luckyluke
[+997] [2008-09-12 12:46:46] Graeme Perrow

Brian Kernighan:

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.

I like this one. - Flame
i wish my boss could understand this one - jake
This is one of my favorites. - kurious
Never heard this one before but I like it - finnw
Words to live by - Tilendor
(245) Unless you have smartness 0! - Martijn
(19) @Martjin: in which case both debugging and coding are fruitless endeavours! :( - Esteban Brenes
(11) So we should all code at 50% of our potential, just to be able to debug it? I refuse. If I can't debug it, I'll rewrite it. - Guge
(1) @Guge: or simply have somoene that's brighter than you debug it! But seriously, I think the whole point of the quote is to point out that 100% of our potential is best applied to Debugging/Proofing the solution instead of rewriting/writing the code. - Esteban Brenes
(1) Serious point - debugging tools have got a lot better since those days. - Daniel Earwicker
(2) This is elegantly cute, but depends on the assumption that "clever" means complexly-clever, not simplifying-clever. - Charles Bretana
That's the first quote I thought of when I read the question! - gnovice
Or write code that doesn't need to debugged. - Joshua
I don't know exactly what Kernighan meant, but taken at face value I don't agree with this. Writing code cleverly is also about making it easy to debug. I usually find that writing the clever code is the really difficult part. Once that's done, it's easy to debug the occasional problem. - flodin
(26) @flodin: He means the sort of 'cleverness' that involves fragile and unclear operations that, typically, save 20% of the execution time at the cost of 100% of the maintainability. - chaos
(1) Unless you're John Skeet! - DoxaLogos
(6) Unless you have infinite smartness! Oh, DoxaLogos already wrote that. - TonJ
(4) This would be good justification as to why you should write code fairly drunk. - Pool
What if the cleverness to write code and the cleverness to debug it have different capacities? - Malcolm
[+934] [2008-09-12 12:48:39] Pat

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 Cargill

(20) So true, its painfull. - Cookey
Neil Rebunking: ".... and the finishing touches will take another 90%" - James Curran
This is great. I use this one all the time to argue against "percent complete" estimations. - Michael Meadows
Another brilliant one! - Mecki
(4) Cannot be.. the math does not work out. 90%+90% != 100%! - Hao Wooi Lim
(14) @Hao: The idea is that after you've done the first 90% you find that the last 10% takes as long as the first 90% did therefore your estimation was wrong. The percentages are from the estimated time not the real time. - Annan
(20) The edit is wrong, can someone with enough karma revert it? It should be 90% + 90%, hence the joke. See here: - Alconja
(19) Now i know, why the windows progress bar behaves like it does! - Arne Burmeister
Oh... I get it... you meant as a joke - Radu094
(12) The quote is good, but it's even funnier reading Hao's comment and the edit history. - Ashley Henderson
(1) I know this as a differnt: 80% of the programming is done in 20% of the time, 20% of the programming is done in 80% of the time. - Levisaxos
It's sounds like 80/20 rule. - beryllium
[+811] [2008-09-12 11:03:57] harriyott

Java is to JavaScript what Car is to Carpet.

Chris Heilmann

(25) Funny because it is true. - toast
CarPet is the driver ;) - Ilya Ryzhenkov
(72) I read it as "...what Car is to Crap". I then asked myself which one is the crap: Java or JavaScript? - zvikara
zvikara, who says it has to be either/or? :D - Kyralessa
That's sorta like my explaination of what's wrong with MFC CRecordSet class: "It confuses the Book with the Bookcase" - James Curran
(27) Why doesn't Java have anonymous functions yet? They were invented in the 1930s you know... (Not to say that JavaScript is perfect but at least it has ... 70 year old language features.) - Jared Updike
(8) or what about Grape to Grapefruit, or Pine to Pineapple. - 動靜能量
(1) YES! I have to tell this to designers and marketing all the time. - Justin Johnson
(16) @Jared what do you think an anonymous Callable/Runnable is? Just like everything in java, it is twice as verbose as necessary. - KitsuneYMG
Or C is to Cobol. - Pete Kirkham
...or Ham is to Hamster (Bill Bailey, anyone?) - Jamie Rumbelow
@Jian, Grapefruit at least is still a fruit, like grape. - lfaraone
Wish I could double 'up' this quote - Gordon Tucker
I originally read it as "ham is to hamster" - Agos
(30) So does that mean that Java is expensive and damaging to the environment, while JavaScript is beautiful and allows you to casually hide away small amounts of dust? - Timwi
@jared, take the plunge - master LISP. - Thorbjørn Ravn Andersen
(1) ...or what Carp is to Carpet. - Pedery
(1) and gwt makes them meet .... - Salvin Francis
(3) My car has carpet inside. - Brad
(6) For the javascript lovers: You don't call Javascript Java just like you don't call your Country a ... - Robert Clark
Java is to Javascript as lightning is to the lightning bug (adapted from Mark Twain). - Paul Clapham
(1) One day the magic flying carpet will be faster than your Ford! - overboming
[+788] [2008-09-14 12:33:47] Chris Bartow

If you want to set off and go develop some grand new thing, you don't need millions of dollars of capitalization. You need enough pizza and Diet Coke to stick in your refrigerator, a cheap PC to work on and the dedication to go through with it.

John Carmack

The idea that I can be presented with a problem, set out to logically solve it with the tools at hand, and wind up with a program that could not be legally used because someone else followed the same logical steps some years ago and filed for a patent on it is horrifying.

John Carmack on software patents

(32) +1 for John Carmack - Michael Stum
(209) +1, I hate patent laws. Need to be fixed. - Adam Lerman
(24) Also +1 for the software patents quote :) - Desty
(62) +1, software patents are like patents on math. - grom
(12) +1 for the patent quote. -1 for Diet Coke, though; that stuff is nasty. Coke Zero all the way. - Kyralessa
(2) +1 for patents. I'm glad we don't have this insanity in Europe - Krzysztof Koźmic
(1) I wish I could +10 for John Carmack. - sirlancelot
(3) Kyralessa, fwiw the quote probably predates Coke Zero - simon
(2) Think of a number that nobody else has thought of, and you can own it. - James M.
+INF for John Carmack - Rodrigo
(1) @Kyralessa - One man's food, is another man's poison. - n002213f
(1) #1 so true, a supportive wife would also be a tremendous help :P - hasen j
good stuff. on the first quote, "dedication" is more important than the "pizza", "coke", and "computer" put together.. - steve
You don't need Diet Coke, just some programmer's fuel (Coffee and Red Bull). - Martín Fixman
++1 for software Patents quote... RMS save us ;) - Microkernel
Carmack conveniently leaves out that his company was started while working at another company using their computers. So yeah... you need what you said or disloyalty if not breach of contracts. - Thomas
I would like to upvote that one, but it's stuck on 666 for now and... well, you know... DOOM and all... - haylem
[+769] [2008-09-12 10:41:58] harriyott

"Some people, when confronted with a problem, think "I know, I’ll use regular expressions." Now they have two problems."

-- Jamie Zawinski

Just search for "regex" on this site and you'll find many examples of this! - Greg Hewgill
Yes, I see what you mean! - harriyott
(200) Bitching about regex is like bitching about sql. I LOVE REGEX, AND IF LOVE IS WRONG I DONT WANNA BE RIGHT! - Will
(11) I love regex too Will, although reading someone else's regex can be hard work at times. - harriyott
The quote attribution is Jamie Zawinski. I believe he was at Netscape at the time. - DGentry
Thanks Denton - I'll edit the post to that effect - harriyott
I love Regex but that's no reason why I can't accept a joke on it :) - Teifion
I love the way this quote seems to morph to fit whatever the quoter doesn't like. I don't know what the original quote was, but I've also heard it applied to macros and templates. - Ferruccio
(50) I love regex too, but people often use regex when they need a different kind of solution, like a parser. If they use regex, they will constantly be fighting edge cases until the end of time. Regex is a tool. But if a hammer is the only tool you've got, everything starts to look like a nail. - Justin Standard
I'm sure jwz loves regexes too. But use them in the wrong place and you will live to regret it. - slim
It is not necessarily a quote against regexes, it can be (or seen as) a quote against those unable to get REs correctly! Or abusing them, like trying to parse an e-mail address or HTML with them! - PhiLho
Yeah just like Jeff using Regex for the HTML sanitizer :P - grom
(9) Actually, the quote is targeted at those that pick a tool and try to use it to solve a problem, rather than the other way around like Justin Standard said. You should always pick the tool to match the problem. - Cristián Romo
(1) For me, it is about panaceas, not regexes. But regexes make a good example snicker - peterchen
Jeffrey Friedl wrote up the history of this quote: - Philip Durbin
@Ferricio You could replace the subject of the joke...using a regex :) - Draemon
I love this quote. - Pim Jager
Regexes are convey deep insight into the human mind, but only the mind of the developer who wrote it! - Henrik
(99) "Some people, when confronted with a problem, think "I know, I'll quote Jamie Zawinski." Now they have two problems." - Simon Lieschke
I have no problem with regexes, when used in the right context. When not... eww. - Matchu
Regexes are the perfect thing for recognizing or analyzing regular languages. It seems very few of the 'people' in Jamie Zawinski's remark know what a regular language is. - TokenMacGuy
(1) Regex is a great tool for moving pattern matching out of your code. To actually hard-code your regex string is missing about every point possible. - Bill K
"Some people, when confronted with a problem, think "I know, I'll quote Jamie Zawinski." Now they still have their original problem." - Paul McGuire
This seems to clear up the attribution issue - cletus
(3) mandatory XKCD: - alexanderpas
(1) Minor correction: "mandatory XKCD" should read "obligatory XKCD." :) - Parappa
This is so true :( - MyGGaN
(1) This is so true, the evidence? The large number of people asking regex-related questions on IRC! - Leo Jweda
JWZ isn't the original person who made this quote. It was first seen regarding awk on usenet. - Jerub
I too love regex, but I also love skydiving. Both are fun and challenging, both are dangerous, and neither are to be taken lightly. - Justin Morgan
[+744] [2008-09-12 12:48:48] David

Bjarne Stroustrup [1] has many great quotes attributed to him, including:

There are only two kinds of languages: the ones people complain about and the ones nobody uses

and who can forget his now classic:

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

Source: Bjarne Stroustrup FAQ [2]


(33) I love the second quote. It's certainly true when applied to cell phones these days. - RobH
(99) The first quote is just an excuse for making C++ suck so bad - hasen j
(10) agreed with hasen, that's a lame way to respond to criticism. - Ali
(27) It may be a lame excuse, but it's still true - there will be complaints about any language. Even Python. - Branan
(11) HAHA, the second one is just perfect! - Tuoski
(1) +1 for the second one. - Angkor Wat
(2) @Branan: especially python and it's white space. Harumph... Me - just upset I have to learn Python. - Chris Kaminski
(3) Phones seem to have expanded so that now they can read mail. - TokenMacGuy
FWIW, my iPhone is now almost as easy to use as my computer! - David Thornley
@hasen j: no need to point out the obvious. - Matt Joiner
@Ali The ones who disagree with the first quote are the ones who just can't seem to logically reason about its contents and only see "C++ superiority claims" everywhere. - Christian Rau
[+713] [2008-09-22 18:53:04] jimmyorr

Linux is only free if your time has no value

Jamie Zawinski

(5) I don't down-vote, but I think this one is telling ignorance rather than truth. - ypnos
(2) Yeah, it definitely saves me time. Not a programming quote either. - Draemon
(4) Heh, even with modern distros... - Dmitri Nesteruk
(168) "Free software" is a matter of liberty, not price. To understand the concept, you should think of "free" as in "free speech," not as in "free beer." - - SHODAN
(45) windows vista: 300$ , linux: free, this quote, priceless! - hasen j
(3) Free in the context of free software means that you are "free" to some extent to do what you want with it since you have access to the source code and can modify it to your needs. It has nothing to do with value. - David Holm
(3) Consuming your time with pointless fiddling costs you freedom as much as it does money. - Ahruman
(64) The quote is perfectly accurate, in a non-ironic way. If a "free" piece of software that duplicates all the features of one that costs $500, but it takes you 10 hours to get working the way the non-free version does, then the only way that's a net positive is if your time is worth <$50/hour. - bigmattyh
(1) Microsoft software can be far more expensive than it should be in some countries. (For instance, Australia, when you AREN'T getting a computer with it...) Ever tried getting MS Office or windows for an existing PC? - Arafangion
(2) an other variant is "Linux is free, free like a puppy" - Bob The Janitor
(71) Although I agree that Linux will often require tweeking and configuring, thus costing you money, I usually spend twice that much on windows for the same end result, so Free + 10h << $$$ + 20h my 2 cent - Newtopian
(143) If you can do something in 10h on linux but it takes you 20h on windows then you probably don't know how to use either. - jellomonkey
(18) Linux is only free if your time has no value. Windows costs both time and money no matter what. -Me - henrikh
(9) Actually at the time of this quote IIRC the jwz OS of choice was IRIX, not windows. BTW now that I used linux/unix exclusively for more than 5 years, everything in windows is atrociously slow, difficult, irritating and cumbersome. That's all about habits. - wazoox
(2) @bob: yay! puppies! Can I haz ponys now? - voyager
WOW, that's coool :) - Prashant
(9) "Free" as in FOSS means you are free to do what you want, subject to license restrictions. Much like commercial software. - James M.
@James M.: Hear, hear! I hope your insightful comment doesn't get lost in the pile. - j_random_hacker
(7) this quote used to be a lot more on target. Before canonical and others put in installers, partition mgrs(that are better than windows), package mgrs, oh, and before everyone started thinking that Firefox WAS the computer. - LoveMeSomeCode
(11) I suppose this quote is very old. Personally, I lost much more time installing Windows 7, finding drivers, download patches, rebooting, downloading and installing all the software that Windows needs and doesn't come with, then creating another partition with Ubuntu, with all drivers already in apart Nvidia and apt-get install just the few softwares I needed. - Patrizio Rullo
+1 for the lulz - Justicle
(5) Free has two different meanings in spanish. 'gratis' like in 'free beer' and 'libre' like in 'free speech'. Free software is translated as 'software libre', so for us clever spanish speakers there is no confusion ;) - victor hugo
(3) Yes Patrizio, and those Nvidia drivers took you 4 days of searching through tech forums just to find out that there isn't one for your computer and that distro of ubuntu :) At least that's what happened to me. - amischiefr
@Patrizio Rullo (and amischiefr): At the time of your post (sept 12) - windows 7 was an RC. Which was free. - SnOrfus
(2) I never get tired of reading a joke like this, and then seeing humorless comments like SHODAN's explaining a concept we all understand but don't take so seriously that we can't laugh at the joke. - Hooray Im Helping
(1) @jellomonkey: the only way to be effecient with windows is to turn it into a basterdized unix system: install all the unix/cygwin/msys tools, replace all default crappy packages with the better open source alternatives, install a decent editor (e.g. vim), etc. - hasen j
By that definition .NET should have failed, since the early adopters (1.0) didn't really have an easy time either. - Marco van de Voort
Wow, if you think VIM is a decent editor (or decent anything) then there is nothing much left to talk about. - saunderl
@saunderl I agree, I'm an Emacs person too. I wish those VIM people would learn what a real text editor was ;) - Jonathan Sternberg
@SHODAN There just had to be someone with the dogmatic speech-to-beer comparison. - Christian Rau
[+689] [2008-09-12 12:01:32] Gulzar Nazim

It works on my machine.

Anonymous programmer

Now to be replaced with "It works on [browserX], why don't you use that?" - Teifion
(113) But we aren't shipping your machine to the customer - cnu
Jeff has a whole line of products about this one: - Jason Jackson
Should be attributed to an anonymous lazy programmer. - eleven81
(43) Should be attributed to all programmers. - Aardvark
(201) Humorously, when we had to deploy a system for a big customer of ours, we couldn't get it to work on their hardware. So we shipped them the development computer. - Andrei Krotkov
You can get that on a T-shirt: - Andy Brice
At Andrei: Lol they got pwned - Janie
@Andrei You lost a good deal of experience points for figuring out what was wrong. And now you need a good stock of dev computers for future clients :) - Kuroki Kaze
variants: 1) it worked yesterday. 2) Let me try that or Can you do that again. - krishna
+1... The statement is true (I've done it), but the +1 is more attributed to CNU's all too perfect retort. - Sivvy
Usually this one comes with "I haven't touched that code in weeks" - justinhj
(28) Andrei, you should write that story up in detail and submit it to the Daily WTF. - Kyralessa
I said this many times to the QA's. But it's really true, it really used to worked in my machine. - Bipul
hey it really does! - Carlo
roflmao!! brilliant - iamgopal
Obligatory xkcd... - ircmaxell
This reminds me of something I witnessed once. A developer had fixed a bug and wanted to demonstrate it to the team. But alas, the bug was still there and he said: "Uh, it worked yesterday!" - Valentino Vranken
More than 600 people found this answer useful. - MAKKAM
[+619] [2008-09-12 10:52:53] harriyott

It should be noted that no ethically-trained software engineer would ever consent to write a DestroyBaghdad procedure. Basic professional ethics would instead require him to write a DestroyCity procedure, to which Baghdad could be given as a parameter.

Nathaniel S Borenstein

(2) Pre-OOP age? One would write "baghdad.destroy()" in Java, or simply "delete baghdad;" in C++ ;) - Thomas
Wonderful. Its both hilarious and sad that this is a true statement. - WolfmanDragon
(4) Finally, politics in words I can understand. - Wyatt
I love this one. - moffdub
(2) Sad but true. If I were in Baghdad, I would not be amused. - Mike Dunlavey
(1) Exactly. In OO programming, Baghdad would be part of the City class, which would have a pre-built Destroy() procedure. - zaratustra
Baghdad is obviously derived from City. WMD.destroy(...) takes an instance of City probably. Or something. - Dan
(334) An unhandled WMDNotFoundException was thrown by Baghdad. Would you like to impeach this president? [y/n] - annakata
(1) Hah - wish I could +1 comments, annakata! - Erik Forbes
(58) @annakata: FYI, that exception is handled by EnergyLobbies subsystem with an empty catch block! - utku_karatas
(21) not funny >:( - hasen j
(14) that way, you could also pass in Carthage as a parameter too - 1800 INFORMATION
Data access may be in SQL. So, procedure is appropriate. - BenMaddox
(31) For anyone who gets a bad taste from this quote. I don't think the author necessarily hates Baghdad but for the joke to be witty it needed an enemy-figure. If this was written near WWII times, it may have said "Hitler" instead of Baghdad. - T Pops
(5) Resource acquisition should be done during initialization, not destruction. - ctd
(1) @annakata, @utku_karatas - I hope thats a RuntimeException, so that the users know about its as well - n002213f
It's like Revive() functions where Hitler is a parameter. - Braveyard
(4) This is great - for anyone insulted or not finding it funny, the joke is that the ethics is not in what the code DOES but how it is written. Love it :) - Thorbjørn Ravn Andersen
(6) @T Pops, "enemy" for you, homeland for me. Equating her with Hitler doesn't help you know. - hasen j
That's freaking awesome. - Ducain
(5) @Thomas I suppose Bush was a C programmer, since he attempted "free(baghdad)" - Graphics Noob
Can someone point me to the source and full context of this quote? - flybywire
@Graphics Noob: then he should have got a double free exception. - Matt Joiner
(4) @T Pops, that would be "Berlin", not "Hitler". - Thorbjørn Ravn Andersen
DestroyPlanet("Earth"); - muntoo
[+615] [2008-09-12 20:11:16] huseyint

"In order to understand recursion, one must first understand recursion."

(3) It's turtles, all the way down. - JasonTrue
(127) Are you insane? Putting an infinite loop on the site! - Ólafur Waage
I like that, it's very subtle - Lewis
(52) "In order to understand tail-recursion, one must last understand tail-recursion" - Jimmy
(32) Luckily my head has paradox-absorbing crumple zones! ;) - gnovice
No exit point! heh, maybe that is what recursion is all about - Hoffmann
(62) (dictionary) recursion: see "recursion" - Mark
(7) @Hoffmann - I saw this elsewhere on SO - "In order to understand recursion, one must first understand recursion, until one understands it." How's that for an exit?! - 20th Century Boy
@20th function to_understand_recursion() { if (understand_recursion()) return 1; else to_understand_recursion(); } function understand_recursion() { return 0; /* 0 or 1 ? */ } therefore, some say, you either understand it or you never will. - 動靜能量
(4) I feel a great disturvance in the Web, as if a thousand programmers head screamed at a stackoverflow and were suddenly silenced. - voyager
(66) - çağdaş
this quote could lead to let ppl stay on the site for ever gg... - amr osama
There is a period - it does have an anchor point. - McAden
(2) With all due respect John, I am the head of IT and I have it on good authority. If you type "Google" into Google, you can break the Internet. Jen, "The IT Crowd" - Tor Valamo
The safe way to understand recursion is to understand exit from recursion first, and then understand recursion. - Regent
(1) So who is to credit for this quote? - User1
(4) my stack just overflowed. - Matt Joiner
@çağdaş The google one is too good ;) Didn't know. - Microkernel
This should be the top quote. Beautiful, true and self-referential. - Charlie Flowers
(1) see this:… - jrharshath
that's infinite recursion, and not really infinite as it will blow up the stack in no time. - Petruza
[+590] [2008-09-12 13:43:01] Thunder3

I always loved this one:

On two occasions I have been asked [by members of Parliament], '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

This truly an enlightening quote from a great character. - Vicent Marti
One of my favorites too! - Arthur Thomas
(2) Scary thing is, I've been asked basically the same question many times. At first I thought is was someone trying to trick me into just agreeing to do what they want me to do, but no, they're really just that clueless. - Clayton
(31) I love how people wrote back then! - kurious
(1) Many banks run their business on that principle. - Bob Probst
(71) BTW, he was asked that question "[by members of Parliament]". - ShreevatsaR
(10) This explains much, ShreevatsaR. - Erik Forbes
(17) confusion-of-ideas - great tag name for questions about "printing the name of a C++ object". - Arkadiy
I'm going to have to steal that great line for use in heated arguments. - LegendLength
(13) I guess he answered in both cases actually "shit in, shit out" - Mauli
(1) And it only took a hundred or so years to get computers to do image enhancement and noise reduction. - Pete Kirkham
Ada to the rescue: - mckeed
(3) I once got called up for a piece of software I wrote because for a date the client entered 33 instead of 3, then complained when it spewed out an error telling me it should "know what I mean". Some people assume because computers don't make calculation errors they must by mind readers as well. - scragar
(3) @Pete Kirkham: that only makes it easier for our eyes to handle, they can't add data that is not already there. Put in 100% random noise and get a decent picture out is impossible, whatever they do on CSI ;) - ewanm89
(3) My teenage cousin once asked me, 'If I give you a photo of a girl, can you remove her clothes in Photoshop?'. I never really understood what he thought of Photoshop. - sv_in
Isn't this all (over)defensive programming is about? Make sure someone who puts in rubbish doesn't get rubbish out ;) - Christian Rau
[+575] [2008-09-12 12:15:37] Bill the Lizard

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

--Edsger Dijkstra

(9) Edsger Dijkstra is my hero :) - Robert Gould
(28) In our company we had a variant of the joke: when there're bugs, we fix them; when there're none, we made them. - Hao Wooi Lim
(2) It can be referred to as enbugging.… - uzbones
(9) Programming is like sleeping with open window - bugs will find their way inside without your help. - Kuroki Kaze
(5) "We produce two things for the company: buggy code and bug fixes." - me - Arkadiy
(6) it's not a bug, it's a feature! ;) - Macke
I'm stunned by the fact that this many people upvoted this. - user12343242341
@macke it's not a bug, it's an undocumented feature. - Sanjay Jain
[+539] [2008-09-12 12:45:50] Pat

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

(36) omg, this sounds so true to me... - Spikolynn
(7) rarely have such true words been written - Bob The Janitor
(7) +1 from a practitioner of great and insidious evil. - Chris Lutz
(1) Superb! Amazingly, I practice both evils :) - MaxVT
Haha. That's hilarious. - the_drow
(3) that's pure poetry! - jess
(3) First time ever I really wished to vote twice! - Gab Royer
Now i need to find out where is Python in this scheme. - Kuroki Kaze
(1) I prefer working with the evil then. Evil can improve itself, but incompetence breaks itself all the time. Or is it so that sufficiently advanced incompetence is indistinguishable from evil? - Dave Vogt
I'll stick to ruby then. - ewanm89
The one who gave statement, received vocal miss-blessings by my colleague who has been a fan of PHP and Perl. You know it hurts when someone says bad about ur stuffs :P - infant programer
[+517] [2008-09-12 12:44:19] Aardvark

Maybe I work too much on legacy code, but this always springs to mind:

Perfection is achieved, not when there is nothing more to add, but when there is nothing left to take away.

Antoine de Saint Exupéry

(57) This statement is a basic truth of the universe - WolfmanDragon
(1) Agreed, its one of my maxims as well - Robert Gould
(3) Beautiful quote. I've heard it in reference to software many times, but didn't see attribution to Exupery before. Thanks. - Bernard Dy
(3) You got my last vote of the day. Beautiful - johnc
(2) The quote as originally stated by the author was specifically referencing visual design: "A designer knows he has achieved perfection..." but it's equally as apt for development. I love and frequently use this quote, as it is one of the few times I've found that visual design and software development actually have a common goal. - markh
Reminds me of Scheme Specification. - kunjaan
Nice. I remember one beautiful book by Exupery. - pymendoza
[+508] [2008-09-12 13:29:40] sock

Computer Science is no more about computers than astronomy is about telescopes.

-- E. W. Dijkstra

(1) yes!!! Got a letter published in the newspaper on the back of that one... - HenryR
(5) That's probably why some schools/universities call it ComputING Science. - RobH
I've been trying to describe what computer science is and this is a great way to sum it up. Thanks. - Tim Matthews
That's a good one - chakrit
(8) Stars don't "happen" in the telescope. Computations do infact happen in the computer. How is "computer communication" or "software/hardware interface" not about computers? This quote only applies to algorithms. Computer science is not just about algorithms. - hasen j
(1) @hasen j: In my mind, the phrase "computer science" is associated with those more formal things like algorithms, data structures, computational complexity etc. But that could just be me... - j_random_hacker
(7) @hasen j: The idea is that the computer as we know it is just a tool to express ideas about computing. While the parallel with astronomy isn't perfect, it illustrates the point. - Ron Warholic
(11) Here's another: "The purpose of computing is insight, not numbers." -- Richard Hamming The point that these giants of computer science were making, I think, is that computers are merely a means to an end and that there are universal laws of information and computing that hold whether or not there exist computing devices to execute them. The computer is a tool that we may use to perform experiments, not something that has value in studying itself. - sock
(12) However, astronomy isn't called "Telescope science". - Daniyar
[+501] [2008-09-15 20:06:20] scubabbl

Anonymous Poem (i.e. I don't know the author)

I Hate Programming.
I Hate Programming.
I Hate Programming.
It works!
I Love Programming.

(36) This is me at least once a month. I simply can't vote this up enough times! - Dinah
(21) To me it's usually I love programming, I love programming, I love programming F*ck! I hate programming... - zbigh
@zbigh: nice! i feel you, man... - pymendoza
Man - this one got me today. This is a perfect example of many of my work days. - Ducain
Oh!! that EXACTLY how i this question has really got some great posts.. and i just ran out of vote for this. - Shekhar_Pro
[+499] [2008-09-18 02:59:45] Steve Wranovsky

Perl - The only language that looks the same before and after RSA encryption.

Keith Bostic

(14) now THATS the truth! - BBetances
(50) Corrallary: Intercal is actually more readable after RSA Encryption. - TokenMacGuy
Sure it is, but I like it! To be able to programming in Perl more efficiently, I even work hard to improve my skill of touch typing... - lzprgmr
(7) Perl is just modem line noise. .$^1@.55a-\..9..u!--. [NO SIGNAL] - Cylon Cat
(5) Apparently everyone here has forgotten about APL, the Original Write-Only Language (accept no substitutes). - Craig Trader
@TokenMacGuy I don't know about readable, but certainly more pleasant to look at! :-) - Daniel C. Sobral
(15) "Python is executable pseudocode. Perl is executable line noise." - Thinking in Python by Bruce Eckel - Andre Boos
[+467] [2008-09-12 12:25:14] David Mohundro

I invented the term Object-Oriented, and I can tell you I did not have C++ in mind.

Alan Kay

(43) I wonder if Stroustrup would tag this as 'offensive' if he was on SO - Sergio Acosta
(22) Who cares? I think Alan Kay has precedence here ;-) - Mike Stone
(3) He is on SO apparently. See Jeff's posts on codinghorror. - SecretDeveloper
(1) he is 100% right !! - Yassir
(8) He [Alan Kay] gave a talk at my school and he repeated this verbatim. I thought it was a spontaneous joke, but it looks like he recycles these :) - Adrian Petrescu
(4) This quote is good enough to repeat. - György Andrasek
This one looks like Stroustrup: - Hippo
I'm not surprised that a programmer writes his speech up front, instead of on the fly. - Tchalvak
(1) @ Adrian Petrescu--If you do a lot of public speaking on a particular subject you eventually evolve a schtick even if don't plan to. You just find yourself failing into the same rut and using the same stories to illustrate the same points. - TechZen
[+454] [2008-09-12 10:54:56] Unsliced

Dan Kaminsky:

Debugging is anticipated with distaste, performed with reluctance, and bragged about forever.

Seymour Cray on virtual memory:

Memory is like an orgasm. It's a lot better if you don't have to fake it.

Isaac Asimov, not really programming, but definitely problem-solving:

The most exciting phrase to hear in science, the one that heralds new discoveries, is not 'Eureka!' but 'That's funny...'

Mitch Ratcliffe

A computer lets you make more mistakes faster than any other invention in human history, with the possible exceptions of handguns and tequila

Cory Doctorow

Engineers are all basically high-functioning autistics who have no idea how normal people do stuff.

And some random unattributed others;

Like the Cory Doctorow one! - harriyott
(23) Issac Asmimov is so correct - Teifion
(1) Make each quote it's own post, for poll-type questions - EndangeredMassa
Love the one about theory and practice - priceless! - Jason Bunting
Poll type questions only require one-answer-per-post for rep - the rep of the questioner for multiple answers (badge possibilities) and for the answerer (more votes). For clarity, I prefer to keep my reply together as it scans better. - Unsliced
(47) The three numbers should have been 1, 0, and 1/0 ;) - Pablo Marambio
The quote 'In theory, theory and practice are the same, in practice they aren't' is attributed to Yogi Berra. - David Rodríguez - dribeas
(1) Don't forget NaN! - gnovice
(1) I've always heard the last one as 0, 1, and many. - Bill the Lizard
(8) "Any sufficiently advanced magic is indistinguishable from magic" - Arthur C Clarke - Serge - appTranslator
rats! I completely missed the pun...... Who said Dork? :-) - Serge - appTranslator
Loved the Cory Doctorow one. - bdumitriu
(10) +1 The Asimov one is one of the most important ones in Science in general. - Marco van de Voort
(13) I have no idea how normal people do stuff. - hasen j
@Serge — And the corollary, "Any technology distinguishable from magic is insufficiently advanced." - Ben Blank
(1) +1 even though I hate the first one. - John Gietzen
Vi is a subset of evil: Richard Stallman - Diones
Funny you should mention austism -- see… - Loadmaster
The Kaminksky quote rings far too true. Other than that DNS flaw he debugged (so to speak), what ever else has he done to brag about? - scott_karana
I prefer this version: "You cannot spell evil without vi." - Marius Gedminas
(1) It should have been: 1, 0, and FileNotFound - Ma99uS
I thought I was normal :S - sMaN
[+426] [2008-09-12 12:54:00] Maximilian

Debuggers don't remove bugs. They only show them in slow motion.

Don't know by whom but I think it's funny.

(17) Not really a joke but a statement of fact. - moffdub
(90) Debuggers don't remove the bug, they hold it still so you can stomp on it. - zaratustra
(18) @moffdub - Agreed, and this is not a jokes thread - Guge
(4) @mGuge Quotes can be funny and still be quotes - Justin Johnson
@zaraustra: you comment is more funny then quote itself :) - Shekhar_Pro
[+402] [2008-09-12 14:04:25] Anders Sandvig

Never trust a programmer in a suit.

(6) Well that's why I don't wear my suit properly... - Sung
(123) They're called "consultants" :) - harto
(2) @harto Sometimes they are called "founders" ... - chakrit
(80) What's a suit ? - johnc
(7) I'm a consultant and i'm a better programmer than some developers I know! (and i hate wearing a suit!) - Sk93
(3) unless they're wearing their birthday suits - warren
(25) I knew a slightly different version: "Never trust a programmer carrying a screwdriver" - vobject
@chakrit: The founders I've known wore suits only when necessary. - David Thornley
(1) "a programmer in a suit" is an oxymoron. Also, +1. - David X
@vobject Whats wrong with screwdrivers?? - OldJim
They're called "con sultants" - seanlinmt
Unless it's a sonic screwdriver. - Protector one
(1) Joke: What do you call a programmer wearing a suit? - A defendant - Sean
(1) @johnc What's a programmer? - terminus
@OldJim it means they like playing with hardware, too. :) - Robert P
I Hate Programming. I Hate Programming. I Hate Programming. It works! I Love Programming. - Sanjay Jain
[+397] [2008-09-12 10:44:56] Graeme Perrow

In theory, theory and practice are the same. In practice, they're not.

(7) Yogi Berra, I believe - Chris Upchurch
I love this quote :) - GateKiller
(54) I prefer: "The gap between theory and practice is not as wide in theory as it is in practice" - eventualEntropy
this is as funny as it is true. - jrharshath
This is one great quote, I put in my messenger status! - Shimmy
Excellent. Very funny. - John Gallagher
According to, this is not a Yogi Berra quote. - Graeme Perrow
(2) Wikiquotes has it as unsorced for Yogi Berra, as Graeme points out, but also for Jan L. A. van de Snepscheut, for someone names Chuck Reid and even for Albert Einstein. So, in practice no one knows who said it, in theory it could be a Yogiisms... - beggs
I prefer another version: "The difference between theory and practice is that, in theory, there is none." - Georg Fritzsche
I've always liked it as "The difference between theory and practice is that in theory, there's no difference." - kyoryu
(1) Although great, not a programming quote. This applies to everything. - ssn
[+389] [2008-09-12 10:44:47] Galwegian

"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

"The trouble with programmers is that you can never tell what a programmer is doing until it's too late."

-- Seymour Cray

"Measuring programming progress by lines of code is like measuring aircraft building progress by weight."

-- Bill Gates

"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

(57) Wow! that's actually a very insightful comment by Bill Gates. Opposed to the classic, '640kb will be enough for everyone' style quotes ;) - Erik van Brakel
(1) Yeah, I really like the comparison. With weight actually being bad for aircrafts and such :) - Maximilian
I've heard the lines of code one before, still makes me smile - Teifion
(23) If you consider what way MS chose to apply this wisdom, then you should be very glad that they don't build aircrafts. - Lena Schimmel
(81) An MS aircraft would have 6 wings, a pool, a dance club, and full movie theater. The first 20 minutes would be the best flight of your life. - Mike Robinson
That Bill Gates quote is awesome - Robert Gould
(1) @MikeRobinson - Yes, but the crashing would be ... more problematic? :) - romandas
(26) It just occurred to me. In order for Mr. Dijkstra to really be able to make that statement, he had to have seen some BASIC. Does this mean he is hopefully mutilated beyond regeneration? - BubbaT
(22) The Gates quote is nice because it might actually make an impression when used on managers trying to measure your performance in LOC/hour. - flodin
(7) I hate that Dijkstra quote. To me, this exposes ignorance on his part. I started as a BASIC programmer. - John Gietzen
(1) For the record, if we managed to make a 1000-ton aircraft fly, that would probably mean we've progressed quite far in terms of aircraft technology, considering the next generation of 747 can only take off with 487 tons. Does that not constitute, in at least one sense, progress? - Chris Lutz
(7) @BubbaT: He didn't need to look at basic, just at basic programmers. @John: So did I, but that doesn't mean that it made me any better programmer back then. Show a little respect to Dijkstra (Related Quote: "[...]arrogance in computer science is measured in nano-Dijkstras." Alan Kay) - voyager
(8) The 640K quote is fake. - Andrew Grimm
(2) @bubbat, Dijkstra was not a student when exposed to BASIC. - Thorbjørn Ravn Andersen
(3) Take it easy, BubbaT! He was talking about BASIC, which had little in common with modern dialects. In particular, he would have been thinking of GOTO and line numbers. So he was spot on, no need to wish mutilation on him (anyway, he's been dead 7 years). - Daniel Earwicker
(6) Bill Gates never said that:… - zumalifeguard
(1) The pyramids had (and still have, after more than 4000 years) wonderful structural integrity and were built by private contractors hiring privileged workers, not by slaves. - Hoodiecrow
@Hoodiecrow, this entire entry would not really survive being passed through snopes. - smci
[+379] [2008-09-12 20:40:13] dewde

With regard to adding more programmers to get a project done faster...

Nine people can't make a baby in a month. - Fred Brooks

Neither can one in nine takes 2! Shouldn't it therefore be 18? - Adam Lerman
"Nine men" might work better, then - Draemon
(36) I know it as "It takes 9 months to bear a child, no matter how many women you assign to the task." - Dan Dyer
(28) but 10 women can make 10 children in 9 monthes - hasen j
(49) or "Nine people can't make a baby in a month, but they can make 8 in 9." - James McMahon
Thanks for the correction, Alex! Certainly want Fred brooks to get the credit for such an excellent quote. - dewde
(3) Adam- one of the two is a manager, and isn't need for most of the 9 months. - GoatRider
(11) hasen j, the point of the quote is that in software development you usually need 1 "baby", not 10, but you need it in a month. The point of the quote is then that you can't get what you want in that case. Very few organizations are software-focused and risk-friendly enough to be developing 10 new products simultaneously. - Mike Burton
@hasen translating it back to programing terms would mean: "adding more developers to the project won't reduce the development time but you'll get more copies of the software at the end of actual deadline" - Gunjan
(1) If you really stress a person, they can deliver a baby earlier. You really don't want to do so, though. - Andrew Grimm
And when your employer want's you to make a baby in one month? - Daniel
[+357] [2008-09-12 10:48:18] Pev

My personal favourite:

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.

C.A.R. Hoare.

Or you could check out Wikiquotes [1] for some other good ones.


(3) Hoare is a legend. I've seen him speak in person, and he truly knows what he's talking about. - Rich
(1) This definition seems to be related to obfuscation contest ;) - Ast Derek
[+346] [2008-11-15 18:12:34] codethief

"Weeks of coding can save you hours of planning."

-- Unfortunately, I couldn't find out the author.

(7) This is brilliant! - j_random_hacker
I guess it was Mr. Anonymous again - Scoregraphic
(11) Different wording, but same principle: "Several weeks in the lab can save you a couple of hours in the library." - Zsolt Török
@j_random_hacker, absolutely! - jamolkhon
"Measure once, cut twice" -- Wally (Dilbert) - Dan Andreatta
(2) Unfortunately I've often found the corollary to be more true, esp i large projects: "Days of programming can save you weeks of planning" - konrad
(1) @MattiasK: That's not the corollary, that's more the inverse. Still, sometimes it's true... - sleske
Isn't this from a JoelOnSoftware article? - muntoo
[+339] [2008-09-12 13:43:48] Howler

Random limerick I found on a website awhile ago.

A programmer started to cuss
Because getting to sleep was a fuss
As he lay there in bed
Looping 'round in his head
was: while(!asleep()) sheep++;

(1) Excellent limerick. You may have gotten it from - apandit
(79) I would use "++sheep", rather than "sheep++". It will do less copying, which is important because a sheep is a pretty complex object. Also, it will help the rhyme scheme a bit ("sheep increment" does not rhyme with "not asleep", but "increment sheep" does). - Scott Wisniewski
You know you should step away from the computer when you rhyme in a programming language! - Mauro
hahaha I stole this and put it on my site, so I didn't cite anyone? Howler? - Sara Chipps
(115) @Scott, Any decent compiler will handle that for you, and "sheep plus plus" rhymes with "fuss". "not asleep" is not supposed to rhyme with anything. - Blorgbeard
(1) @Sara Chipps, I don't know the source. I found it on some website. Following @apandit's suggestion, I did just find it on limerickdb.. Still no cite, though. - Howler
(16) Yeah, the lines of a limerick are AABBA. - Cristián Romo
(1) My email signature for over a year now has been while (pray++) { ++haunting; } Don't know if the rest of the world knows it too, but in Brazil a popular saying is that "The more I pray, the more haunting appears to me". - schonarth
(31) @Scott: i believe most people would pronounce it "sheep plus plus", and that's how you'd have to pronounce it to have it be a limerick. your way would break the rhyme scheme. - Claudiu
(1) However, "A sheep is a pretty complex object" would be a good answer for this non-question. - JasonFruit
this make me remember an episode of Mr. Bean - Navneet
(1) @Cristián Romo: There are 5 members in ABBA now? Who da fifth? ;) - Sani Huttunen
(1) "while not asleep, sheep plus plus" is probably how you were supposed to pronounce it. - MiffTheFox
(45) sheep is not a complex object, it's an unsigned integer. - Joren
(2) Doctor, I can't pronounce sound '@'. - Dmitriy Matveev
(7) - Fozi
Joren, you never know, it's C++ - finrod
@Navneet me too haha. He shoots his light bulb with a gun afterwards because the light switch is too far away. xD - WTP
@Joren Depending on how long it takes you to get to sleep sheep could be an unsigned long long. - darvids0n
[+295] [2008-09-12 10:56:55] Tyler

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

Donald Knuth [1]


I remember reading that one. - Flame
That's what I call wisdom :) - utku_karatas
Oh man, I said almost exactly that on my blog the other day. - Daniel Earwicker
(16) Beware of my proof, for I haven't proved it yet. - hasen j
(8) @hasen j: The point of the quote is not that the proof (by Knuth!) is incorrect, but that any proof must start with certain axioms about the computational model, and the real world is always more complex. You may prove that a certain iteration always converges to the result, only to find that because of rounding-off issues it actually diverges in some case. Or, it was proved that breaking the RSA cryptosystem was as hard as factoring, until some clever computer scientists found "side channel attacks" by measuring timing, power consumption, sounds made by the processor etc.! - ShreevatsaR
[+287] [2008-09-16 10:31:58] Ali Parr

C++: an octopus made by nailing extra legs onto a dog.

-- Steve Taylor

(24) +1: I LOL'd literally. - John Gietzen
hahah +1 I laughed loud enough to get peoples attention - instanceofTom
(6) I nearly covered my monitor with what I was eating when I read this - Xetius
I scrolled all the way down and this was the only one I actually laughed at and drew weird looks from everyone around me. - Callum Rogers
I'm laughing so hard, I had to close the door to my office. I'm pretty sure it must sound like I'm sobbing. - Matt Ball
(1) Maybe you were sobbing inside because you know it's true...? - Ali Parr
(1) Who is Steve Taylor!!! - Microkernel
Dog, are you referring to C??? - Microkernel for continuation ad nauseum. There are some gems (ctrl-f SchemeLanguage, LuaLanguage) though many aren't even funny. - Jesse Millikan
See also: Cat++ "Upgrade to a modern pet with more features today!" - Dan Moulding
[+285] [2008-09-29 23:30:27] florin

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

-- Robert Sewell

(29) Ouch that hurts for java fans ! - Clement Herreman
(20) Yes, it does, but it's still true. Sadly though, it's true of just about any language though. - Matthew Scharley
(2) @Matthew: My thought exactly. - kyoryu
It's universally true of all but sterile academic languages. You start out with this elegant idea but then you find yourself having to graft on more and more kludges to handle special cases. After a couple of years in the wild, you then have to start managing legacy, updating for new hardware etc. All successful and widely used languages end up very ugly and complex. - TechZen
This is my favorite one so far. God, I hate the type system so much. - Dhaivat Pandya
[+252] [2008-09-12 10:46:40] seanb

"My definition of an expert in any field is a person who knows enough about what's really going on to be scared."

P. J. Plauger, Computer Language, March 1983

"An expert is a man who has made all the mistakes that can be made in a very narrow field"

Niels Bohr

An expert in a field is someone who can, by just doing something, convince you that you can as well. - BCS
(136) There's a college version of that quote. "Once you get a B.S., you think you know everything. Once you get an M.S., you realize you know nothing. Once you get a Ph.D., you realize -no one- knows anything." - unknown - Paul Brinkley
(3) This quote applies to multithreading in bucketloads. - Daniel Earwicker
I'm scared .. I guess that makes me an expert? - hasen j
Wow.. i couldn't agree more to this... I am scared to know this. - Sung
(6) “An expert is someone who knows more and more about less and less, until eventually he knows everything about nothing.” - Dinah
I feel pity for those who went under the hands of expert surgeons then... - icelava
(3) I know a few surgeons - the good ones know when to be scared - give me one of those any day, rather than one saying "how hard could it be?" - seanb
+1 for Bohr - there are so many languages for which that is true. - new123456
[+243] [2008-09-16 06:57:26] user11285

Heard from a Teacher -

Theory is when you know something, but it doesn't work. Practice is when something works, but you don't know why. Programmers combine theory and practice: Nothing works and they don't know why.

heheheh this is my favorite ! - Yassir
+1: lol, for a second there I thought it was getting to some enlightening conclusion, until I read the last sentence. haha - Omar
(8) I've had a lot of programming days like that. - Kyralessa
This is written in German in a class room on my school and the teacher claims he wrote it himself. That bastard! (okay, it's wasn't about programmers but about students, but that's the only difference) - WTP
[+222] [2008-11-07 18:27:48] Raz

You can stand on the shoulders of giants OR a big enough pile of dwarfs, works either way.

(2) Wow. That's awesome! Any idea who said it first? - Mark Bessey
(30) Thank you, I believe it was me. - Raz
This one's good... an accurate reflection of our industry - Dmitri Nesteruk
LOVE it. Stupid and smart at the same time. First you laught because it's so funny, then you think because it's deep an true. - e-satis
(1) LOL... that's so true.... I think this goes with the quote where they say that 10 average programmer can never produce work of 1 great programmer - chakrit
(6) Dicebat Bernardus Carnotensis nos esse quasi nanos, gigantium humeris insidentes, ut possimus plura eis et remotiora videre, non utique proprii visus acumine, aut eminentia corporis, sed quia in altum subvenimur et extollimur magnitudine gigante. -- John of Salisbury, 1159 - Callum Rogers
Or if you want to win the Olympic high jump, you get one guy that can jump 10 feet, not 10 guys that can jump one foot. - Andrew Swan
I think we can rewrite the Google scholar motto in this way, it's closer to the web concept. - Rob
[+219] [2008-09-12 10:57:32] Blorgbeard

XML is like violence - if it's not working for you, you're not using enough of it.

Potential Source [1] as a comment to 'The Future of XML' [2]


(2) Excellent quote! - Jared
I really like it - chester89
Nice one. It's on my whiteboard now. - Gishu
Great! Excelent! - DFectuoso
This is good. Who invented it? - Tim Matthews
Like violence? OMG. - Victor Rodrigues
Very Talibanesque, I like! - Janie
(3) That works for Test driven development too - Diones
I think it might apply to json more... a lot less stuff in the markup. - CodeJoust
XML is used too much. Like, Microsoft uses it for configuration files for ASP.NET. Like what are they crazy?! Making it something like an ini will a) parse faster and b) easier to change. I love my life because I don't need to work with microsoft's crap though :) - WTP
[+210] [2008-09-23 11:33:41] Andrew Swan

Whereas Europeans generally pronounce my name the right way ('Nick-louse Veert'), Americans invariably mangle it into 'Nickel's Worth.' This is to say that Europeans call me by name, but Americans call me by value.

-- Niklaus Wirth

(4) really funny! but not a programming quote, -1 - hasen j
(89) it is a programming quote... if you remember that in procedural programming you can pass arguments to function by value (if you change it in function, you change copy), and by name (in C++ it would be by reference: changing value inside function changes it outside). - Jakub Narębski
(3) Ive seen several downvotes on this question by users claiming its not programming related. But more often than not (especially in this case) it is in fact PR! And I, for one, like the sublimity in these kind of quotes. - mizipzor
(18) saying this is not programming related is ignorant - instanceofTom
(16) Some depressingly stupid users on SO... - Janie
this is a great one - Atmocreations
(1) I pronounced it to "Nick-louse Worth"... - Kai Wang
calling him by wrong-value? - Carson Myers
Yes, his contribution to programming is definitely worth more than a nickel. - Andrew Swan
(2) When I read it he mentioned those who called him "Herr Professor" - calling him by reference. - David Thornley
(1) Also this is a great quote since Nikolaus Wirth is one of the greatest minds in Compiler Construction to date.. - Tigraine
[+209] [2008-09-19 00:23:21] Jeff Heigl

Any fool can write code that a computer can understand. Good programmers write code that humans can understand.

-Martin Fowler

(10) It's good he didn't say "Good programmers write code any fool can understand", because that's not true. :-) - ShreevatsaR
best ever....... - yes123
[+203] [2008-09-12 10:41:36] Vaibhav

The classic:

"There are 10 types of people in the world, those who can read binary, and those who can't."

(58) wasn't that 10 types of people in the world, those who can read ternary, those who can't and those who mistake it for binary? - Daren Thomas
Brilliant. I'm going to put that on a t-shirt... - harriyott
Already on a t-shirt: - crashmstr
Ah, no I meant the ternary one. - harriyott
that's only two!! :P - Jorge Córdoba
The ternary one is brilliant! :) - Adhip Gupta
Darren: your's is even better :) - VVS
(1) "There are 10 types of people in the world, those who can read binary, those who can't... I don't remember the others" - Federico Ramponi
(83) "There are 10 types of people in the world, those who can read binary, and those who get laid." - Rob Howard
What about the other 1000 people then? - some
I love this one :) - Krzysztof Koźmic
(21) I can understand binary and get laid. Stackoverflow? - bdwakefield
(61) All bases are base 10 - TheSoftwareJedi
You sure about them both? I think you should recheck, they usually don't go together, if they try to, a StackOverflowException is thrown - Shimmy
"I SAW THE TWO!!! God, what a nightmare." - Bender, from Futurama. - Kuroki Kaze
(71) Am I the only programmer who really hates this joke? (Just my opinion.) - j_random_hacker
(2) @j_random_hacker: only after normal people figured it out and thought it was hilarious. - SnOrfus
(1) All your base are belong to us. - Andrew Swan
[+193] [2008-09-12 10:45:52] jfs

From SICP [1]

Programs must be written for people to read, and only incidentally for machines to execute.


always by E. W. Dijkstra - Andrea Ambu
I like this one - Trap
(1) I think I'm going to start including this in code reviews ;) - Justin Johnson
(3) So true. Especially because "code is written just once but read many more times." - Hace
Recently heard in reference to that very book: LISP programmers know the value of everything and the cost of nothing. (Alan Perlis) - Jason
... and the folks chose a lisp dialect for SICP. So if you think lisp code is unreadable, you're questioning the integrity of the authors ;) - Srikumar
[+190] [2008-09-12 11:35:39] macbirdie

Every language has an optimization operator. In C++ that operator is ‘//’

Overheard [1] at the O’Reilly’s Velocity Conference, June 2008


(4) Hah! If only it were used more often! - harriyott
(1) i can't stop laughing !!!! - Yassir
My kidney ruptured!!! - Janie
It took me ages to figure out what that actually said! :) - Lucas Jones
that's really epic! - Anton
That is not an operator. It's actually a redefinition of sleep(strlen(" till the end of the line followed by \0"));. That's why software written in C++ is always so slow. - WTP
[+189] [2008-09-12 10:56:19] epatel

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

An idiot with a computer is a faster, better idiot

-- Rich Julius

Brevity is the soul of wit

-- Shakespeare

(6) hell yeah as the universe is winning... - Rodrigo
(1) I love the first quote - Pim Jager
The first quote is great, but isn't it originally about engineers/designers in general? - Martin Pilkington
That was Shakespeare? I thought it was Voltaire. - BubbaT
Yup, it's from Hamlet - epatel
THe first quote is brilliant - Colin
(2) +1 for shakespeare - Irfy
[+180] [2008-09-12 16:50:34] scunliffe

Programmer to Boss/Client/Manager:

Based on time, resources, budget, requirements, etc.

You can have the project:

  • Done On Time
  • Done On Budget
  • Done Properly

Pick two.

I've heard this about making processors too - "cheap, fast, good - choose 2" - palmsey
Right on, right on! - moffdub
(21) The Boss/Client/Manager can easily understand and appreciate a and b. But how can then fully understand c...? - Richard Ev
RFC 1925 7(a), - Martin Carpenter
(31) I remember this as "cheap, fast, reliable" pick 2. - Matt Brunell
(1) OMG, the ultimate truth. When I do it properly, I can do it in a given time frame, but that will be expensive. Or I can do it cheap, but not in a given time frame. If it must be cheap and within a time frame, I can do that as well, but then it will most likely suck - Mecki
(1) this is so true, however it is important to stress to the Boss/Client/Manager that if they do not choose C, that both A and B will go up. - E Rolnicki
How can you miss A when the boss chooses B and C? - ammoQ
Because if the boss won't give more money but still wants it done properly... somethings got to give... and that something is time... therefore it gets pushed out and is no longer on time. - scunliffe
(3) I do variations of this kind of three way trade-off all the times. Works in a variety of occasions, try it! - Agos
(1) i actually use this one with my clients to justify price :) - lstanczyk
(10) I knew it as a four choices: On Time, On Budget, Completely, Properly. The idea is to never negotiate on Properly (when doing so the most probable issue is to fail on all points), but be open to negotiate a reduction of feature set if Time and Budget are fixed. - kriss
You manage two? To use another quote, Two out of three ain't bad! - Andrew Grimm
Boss/Client/Manager to Programmer: FIRED! - trinithis
(1) Or if you're going clubbing to meet a girl, you'll notice that the ones you meet are "Attractive, Single, Mentally stable" - Pick 2. - ciscoheat
On time, on budget, properly. Pick 0. - Arafinwe
[+172] [2008-09-29 23:27:44] florin

The question of whether computers can think is just like the question of whether submarines can swim.

-- Edsger W. Dijkstra

(3) Excellent observation... - Jason Bunting
(1) I predict that this quote will be debunked in the coming decades with neurological research. - Unknown
(22) Define swim.... - Janie
(14) @Janie: That's the whole point of the quote -- to draw attention to the fact that "think" and "swim" are not well defined notions. - j_random_hacker
(5) Edsger W. Dijkstra has excellent quotes so far. Is it the product of algorithmic thinking? - aartist
Computers don't think, they just pass data down some pipes; it's no different from water passing through pipes. Thinking involves awareness. - hasen j
(6) ... define awareness - Joren
knowing who you truly are, in the cosmos - dferraro
... define knowing - recursive
(2) Consciousness is a funny thing. If you think you understand what it is you haven't thought enough about it. - Adam Luchjenbroers
(2) ... define define - Tor Valamo
(2) ... define "hoedown" - MGOwen
(3) You guys all understand that the human brain is a physical thing, right? And thus, can be simulated in a computer. See–Turing–Deutsch_principle. There's nothing in a human brain that a computer couldn't do too, in principle. - nes1983
@nes1983: mind/brain dualism will die a painful death in the not-too-distant future, I think. - Cogwheel - Matthew Orlando
(1) do not upvote this answer: it now has 128 votes. - jrharshath
@Cogwheel - Matthew Orlando: That's been said repeatedly for about 200 years now. - Piskvor
[+167] [2008-09-13 07:44:36] Tyler

The 3 virtues of a programmer as defined by Larry Wall, Randal L. Schwartz and Tom Christiansen (in Programming Perl).

  1. Laziness - The quality that makes you go to great effort to reduce overall energy expenditure. It makes you write labor-saving programs that other people will find useful, and document what you wrote so you don't have to answer so many questions about it. Hence, the first great virtue of a programmer. Also hence, this book. See also impatience and hubris.

  2. Impatience - The anger you feel when the computer is being lazy. This makes you write programs that don't just react to your needs, but actually anticipate them. Or at least pretend to. Hence, the second great virtue of a programmer. See also laziness and hubris.

  3. Hubris - Excessive pride, the sort of thing Zeus zaps you for. Also the quality that makes you write (and maintain) programs that other people won't want to say bad things about. Hence, the third great virtue of a programmer. See also laziness and impatience.

(2) engineers are taught to be lazy as well. same reason as #1 haha - chakrit
-1 quoted in the question. - e-satis
You could call #1 "being lazy vicariously through your customers." - Drew Hoskins
I don't know about programmers in general, but this is definitely the predominant attitudes I'd expect out of people who would create a language like Perl. Ick. - T.E.D.
(2) But to really understand this, you need to differentiate between the True and False variations of each of the virtues... - kyoryu
[+167] [2009-03-16 21:31:49] Sandman

"There's no test like production"

-By a colleague of mine

a brilliant observation - MikeJ
(10) Oh my god that is good. - Ian Boyd
(5) I'm stealing that :) - Neil Aitken
OUCH! Too true and that's bitten me hard on many occasions. - Dinah
He is the man ! - Yassir
Welcome to my world... argh - MetalMikester
That makes me cringe. - Auguste
i want your colleague's autograph: he's gonna be famous some day! - jrharshath
Is it about Agile ? :) - THEn
Most books on agile or extreme programming contain variations of this advice, and its a good reason for practicing 'continuous delivery', or 'build early, build often'. - HG1
[+166] [2008-09-12 12:26:28] Tall Jeff

We better hurry up and start coding, there are going to be a lot of bugs to fix.

(6) nice self-fulfilling prophesy there! - Tim Stewart
(69) The sooner we fall behind, the more time we'll have to catch up. - Joe White
(1) Love this subtle little one :) - j_random_hacker
[+160] [2008-09-13 20:12:43] Mladen Jankovic

Charles M Strauss:

Mostly, when you see programmers, they aren't doing anything. One of the attractive things about programmers is that you cannot tell whether or not they are working simply by looking at them. Very often they're sitting there seemingly drinking coffee and gossiping, or just staring into space. What the programmer is trying to do is get a handle on all the individual and unrelated ideas that are scampering around in his head.

(47) Am I like this because I am a programmer or am I programmer because I am like this? - James McMahon
Yes. (15 chars) - Cristián Romo
(7) How is this not the #1 voted answer? - Krisc
Exactly what I am doing now. - Earl Bellinger
Without a doubt the #1 quote of the bunch. - HDave
@James McMahon: "Do I stare at my screen because I am a programmer, or am I a programmer because I stare at my screen... pointless, really. "does my screen stare back", now THAT is the question..." ;-) -- adapted from the intro of the "stardust" movie - David
[+151] [2008-09-12 11:12:07] Mr Shark

The greatest performance improvement of all is when a system goes from not-working to working.

-- John Ousterhout

(19) For some systems, it is the other way around. - Kevin Panko
[+138] [2008-09-12 15:20:52] Pascal

My favorites:

"Computer science education cannot make anybody an expert programmer any more than studying brushes and pigment can make somebody an expert painter."

-- Eric Raymond

"To iterate is human, to recurse divine."

-- L. Peter Deutsch

"C++ : Where friends have access to your private members."

-- Gavin Russell Baker

(19) Haha the last made me ROFL - the_drow
(2) that is why we don't use it anymore :p - Yassir
(1) Expertness in tools doesn't make you expert at work. But it is definitely helpful for an average person. If not expert, it makes you better than average in most cases. - aartist
(1) Can't stop laughing on the last one! - Simon
[+138] [2008-09-12 12:48:57] Matt Haughton

From Bill Bryson

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

[+137] [2008-09-12 11:27:12] jfs

Dennis Ritchie

UNIX is basically a simple operating system, but you have to be a genius to understand the simplicity.

(13) This is true in various areas of physics also. - David Thornley
(1) "What I cannot create, I do not understand" - Feynman - Marco Mariani
I knew it! I'm a genius. :D - WTP
[+134] [2008-09-15 20:30:02] Terhorst

Nobody should start to undertake a large project. You start with a small trivial project, and you should never expect it to get large. If you do, you'll just overdesign and generally think it is more important than it likely is at that stage. Or worse, you might be scared away by the sheer size of the work you envision. So start small, and think about the details. Don't think about some big picture and fancy design. If it doesn't solve some fairly immediate need, it's almost certainly over-designed. And don't expect people to jump in and help you. That's not how these things work. You need to get something half-way useful first, and then others will say "hey, that almost works for me", and they'll get involved in the project.

-- Linus Torvalds

I'd like to upvote and downvote it at the same time :) Because I'm currently planing a very big project, and keep telling myself that linus is wrong with that, but I'm affraid he might be right. - Lena Schimmel
(29) Linux in a nutshell: "hey, that almost works for me". Fits great with the "Linux is only free if your time has no value". Yes I know, I'm evil. - Zuu
(4) Not the catchiest quote on here - Xetius
(11) My predecessor believed in this... now I'm cleaning up all of the patchwork brought on by a serious lack of planning and vision. - SnOrfus
I wish I could upvote this more - mozillalives
(1) And if it's so well written that no bugs could be found, noone would jump in to help. - Lie Ryan
(1) this isn't going to seem relevant at first, but it does come up eventually: - allyourcode
Start small. You ain't gonna need it. - Thorbjørn Ravn Andersen
[+134] [2009-04-25 14:55:52] Kb.

Better train people and risk they leave – than do nothing and risk they stay.


Before software should be reusable, it should be usable.

--Ralph Johnson

(2) That's so true! - Chris Pietschmann
(4) Really awesome quote, thanks - orip
[+130] [2008-09-12 19:18:06] Liudvikas Bukys

The generation of random numbers is too important to be left to chance.

-- Robert R. Coveyou, Oak Ridge National Laboratory

Anyone who considers arithmetic methods of producing random digits is, of course, in a state of sin.

-- John von Neumann (1951)

(1) The first one is so beautiful! - Loki Kriasus
[+129] [2009-03-20 00:26:55] mschmidt42

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

  Douglas Adams
  English humorist & science fiction novelist (1952 - 2001)

(3) Great Douglas Adams, also the writer of the Hitchhiker's Guide to The Galaxy - Marcos Vasconcelos
...and a notorious procastrinator! - John Källén
@marcos vasconcelos The quote is from the hitchhiker's guide to the galaxy. - Pavan
ahhaha, can't stop laughing .. +1 - Senad Meškin
[+120] [2009-06-13 18:07:01] Ian Boyd

A good programmer looks both ways before crossing a one-way street.

(25) Strangely I do this, never know when someone might throw a carGoingWrongWay() exception - Neil Aitken
(39) Throwing it isn't the problem, its catching it and silently ignoring it that you have to worry about... - TokenMacGuy
(4) +1, there's so much truth in this one... - Dave Vogt
Why are we throwing and catching cars on a one-way street? - James B
even thought the street is one way a car still can go on the wrong hand. - George
The thing with OneWayStreet objects is that they might have the BikesAllowedInBothDirections flag set to true, and those you don't hear coming as well as cars! - Valentino Vranken
[+120] [2008-11-15 02:06:47] pro

C You shoot yourself in the foot.

C++ You accidently create a dozen instances of yourself and shoot them all in the foot. Providing emergency medical assistance is impossible since you can't tell which are bitwise copies and which are just pointing at others and saying "That's me, over there."

FORTRAN You shoot yourself in each toe, iteratively, until you run out of toes, then you read in the next foot and repeat. If you run out of bullets, you continue anyway because you have no exception-handling facility.

Modula-2 After realizing that you can't actually accomplish anything in this language, you shoot yourself in the head.

COBOL USEing a COLT 45 HANDGUN, AIM gun at LEG.FOOT, THEN place ARM.HAND.FINGER on HANDGUN.TRIGGER and SQUEEZE. THEN return HANDGUN to HOLSTER. CHECK whether shoelace needs to be retied.

Lisp You shoot yourself in the appendage which holds the gun with which you shoot yourself in the appendage which holds the gun with which you shoot yourself in the appendage which holds...

BASIC Shoot yourself in the foot with a water pistol. On big systems, continue until entire lower body is waterlogged.

Forth Foot yourself in the shoot.

APL You shoot yourself in the foot; then spend all day figuring out how to do it in fewer characters.

Pascal The compiler won't let you shoot yourself in the foot.

Snobol If you succeed, shoot yourself in the left foot. If you fail, shoot yourself in the right foot.

HyperTalk Put the first bullet of the gun into foot left of leg of you. Answer the result.

Prolog You tell your program you want to be shot in the foot. The program figures out how to do it, but the syntax doesn't allow it to explain.

370 JCL You send your foot down to MIS with a 4000-page document explaining how you want it to be shot. Three years later, your foot comes back deep-fried.

FORTRAN-77 You shoot yourself in each toe, iteratively, until you run out of toes, then you read in the next foot and repeat. If you run out of bullets, you continue anyway because you still can't do exception-processing.

Modula-2 (alternative) You perform a shooting on what might be currently a foot with what might be currently a bullet shot by what might currently be a gun.

BASIC (compiled) You shoot yourself in the foot with a BB using a SCUD missile launcher.

Visual Basic You'll really only appear to have shot yourself in the foot, but you'll have so much fun doing it that you won't care.

Forth (alternative) BULLET DUP3 * GUN LOAD FOOT AIM TRIGGER PULL BANG! EMIT DEAD IF DROP ROT THEN (This takes about five bytes of memory, executes in two to ten clock cycles on any processor and can be used to replace any existing function of the language as well as in any future words). (Welcome to bottom up programming - where you, too, can perform compiler pre-processing instead of writing code)

APL (alternative) You hear a gunshot and there's a hole in your foot, but you don't remember enough linear algebra to understand what happened. or @#&^$%&%^ foot

Pascal (alternative) Same as Modula-2 except that the bullet is not the right type for the gun and your hand is blown off.

Snobol (alternative) You grab your foot with your hand, then rewrite your hand to be a bullet. The act of shooting the original foot then changes your hand/bullet into yet another foot (a left foot).

Prolog (alternative) You attempt to shoot yourself in the foot, but the bullet, failing to find its mark, backtracks to the gun, which then explodes in your face. or No.

COMAL You attempt to shoot yourself in the foot with a water pistol, but the bore is clogged, and the pressure build-up blows apart both the pistol and your hand. or draw_pistol aim_at_foot(left) pull_trigger hop(swearing)

Scheme As Lisp, but none of the other appendages are aware of this happening.

Algol You shoot yourself in the foot with a musket. The musket is aesthetically fascinating and the wound baffles the adolescent medic in the emergency room.

Ada If you are dumb enough to actually use this language, the United States Department of Defense will kidnap you, stand you up in front of a firing squad and tell the soldiers, "Shoot at the feet."
The Department of Defense shoots you in the foot after offering you a blindfold and a last cigarette.
After correctly packaging your foot, you attempt to concurrently load the gun, pull the trigger, scream and shoot yourself in the foot. When you try, however, you discover that your foot is of the wrong type.
After correctly packing your foot, you attempt to concurrently load the gun, pull the trigger, scream, and confidently aim at your foot knowing it is safe. However the cordite in the round does an Unchecked Conversion, fires and shoots you in the foot anyway.

Eiffel You create a GUN object, two FOOT objects and a BULLET object. The GUN passes both the FOOT objects a reference to the BULLET. The FOOT objects increment their hole counts and forget about the BULLET. A little demon then drives a garbage truck over your feet and grabs the bullet (both of it) on the way.

Smalltalk You spend so much time playing with the graphics and windowing system that your boss shoots you in the foot, takes away your workstation and makes you develop in COBOL on a character terminal.
You send the message shoot to gun, with selectors bullet and myFoot. A window pops up saying Gunpowder doesNotUnderstand: spark. After several fruitless hours spent browsing the methods for Trigger, FiringPin and IdealGas, you take the easy way out and create ShotFoot, a subclass of Foot with an additional instance variable bulletHole.

Object Oriented Pascal You perform a shooting on what might currently be a foot with what might currently be a bullet fired from what might currently be a gun.

PL/I You consume all available system resources, including all the offline bullets. The Data Processing & Payroll Department doubles its size, triples its budget, acquires four new mainframes and drops the original one on your foot.

Postscript foot bullets 6 locate loadgun aim gun shoot showpage
It takes the bullet ten minutes to travel from the gun to your foot, by which time you're long since gone out to lunch. The text comes out great, though.

PERL You stab yourself in the foot repeatedly with an incredibly large and very heavy Swiss Army knife.
You pick up the gun and begin to load it. The gun and your foot begin to grow to huge proportions and the world around you slows down, until the gun fires. It makes a tiny hole, which you don't feel.

Assembly Language You crash the OS and overwrite the root disk. The system administrator arrives and shoots you in the foot. After a moment of contemplation, the administrator shoots himself in the foot and then hops around the room rabidly shooting at everyone in sight. or You try to shoot yourself in the foot only to discover you must first reinvent the gun, the bullet, and your foot.or The bullet travels to your foot instantly, but it took you three weeks to load the round and aim the gun.

BCPL You shoot yourself somewhere in the leg -- you can't get any finer resolution than that.

Concurrent Euclid You shoot yourself in somebody else's foot.

Motif You spend days writing a UIL description of your foot, the trajectory, the bullet and the intricate scrollwork on the ivory handles of the gun. When you finally get around to pulling the trigger, the gun jams.

Powerbuilder While attempting to load the gun you discover that the LoadGun system function is buggy; as a work around you tape the bullet to the outside of the gun and unsuccessfully attempt to fire it with a nail. In frustration you club your foot with the butt of the gun and explain to your client that this approximates the functionality of shooting yourself in the foot and that the next version of Powerbuilder will fix it.

Standard ML By the time you get your code to typecheck, you're using a shoot to foot yourself in the gun.

MUMPS You shoot 583149 AK-47 teflon-tipped, hollow-point, armour-piercing bullets into even-numbered toes on odd-numbered feet of everyone in the building -- with one line of code. Three weeks later you shoot yourself in the head rather than try to modify that line.

Java You locate the Gun class, but discover that the Bullet class is abstract, so you extend it and write the missing part of the implementation. Then you implement the ShootAble interface for your foot, and recompile the Foot class. The interface lets the bullet call the doDamage method on the Foot, so the Foot can damage itself in the most effective way. Now you run the program, and call the doShoot method on the instance of the Gun class. First the Gun creates an instance of Bullet, which calls the doFire method on the Gun. The Gun calls the hit(Bullet) method on the Foot, and the instance of Bullet is passed to the Foot. But this causes an IllegalHitByBullet exception to be thrown, and you die.

Unix You shoot yourself in the foot or

% ls
foot.c foot.h foot.o toe.c toe.o
% rm * .o
rm: .o: No such file or directory
% ls

370 JCL (alternative) You shoot yourself in the head just thinking about it.

DOS JCL You first find the building you're in in the phone book, then find your office number in the corporate phone book. Then you have to write this down, then describe, in cubits, your exact location, in relation to the door (right hand side thereof). Then you need to write down the location of the gun (loading it is a proprietary utility), then you load it, and the COBOL program, and run them, and, with luck, it may be run tonight.


%DCL-W-ACTIMAGE, error activating image GUN 
-CLI-E-IMGNAME, image file $3$DUA240:[GUN]GUN.EXE;1 
-IMGACT-F-NOTNATIVE, image is not an OpenVMS Alpha AXP image

%SYS-F-FTSHT, foot shot
(fifty lines of traceback omitted) 

sh,csh, etc You can't remember the syntax for anything, so you spend five hours reading manual pages, then your foot falls asleep. You shoot the computer and switch to C.

Apple System 7 Double click the gun icon and a window giving a selection for guns, target areas, plus balloon help with medical remedies, and assorted sound effects. Click "shoot" button and a small bomb appears with note "Error of Type 1 has occurred."

Windows 3.1 Double click the gun icon and wait. Eventually a window opens giving a selection for guns, target areas, plus balloon help with medical remedies, and assorted sound effects. Click "shoot" button and a small box appears with note "Unable to open Shoot.dll, check that path is correct."

Windows 95 Your gun is not compatible with this OS and you must buy an upgrade and install it before you can continue. Then you will be informed that you don't have enough memory.

CP/M I remember when shooting yourself in the foot with a BB gun was a big deal.

DOS You finally found the gun, but can't locate the file with the foot for the life of you.

MSDOS You shoot yourself in the foot, but can unshoot yourself with add-on software.

Access You try to point the gun at your foot, but it shoots holes in all your Borland distribution diskettes instead.

Paradox Not only can you shoot yourself in the foot, your users can too.

dBase You squeeze the trigger, but the bullet moves so slowly that by the time your foot feels the pain, you've forgotten why you shot yourself anyway. or You buy a gun. Bullets are only available from another company and are promised to work so you buy them. Then you find out that the next version of the gun is the one scheduled to actually shoot bullets.

DBase IV, V1.0 You pull the trigger, but it turns out that the gun was a poorly designed hand grenade and the whole building blows up.

SQL You cut your foot off, send it out to a service bureau and when it returns, it has a hole in it but will no longer fit the attachment at the end of your leg; or

Insert into Foot
Select Bullet
From Gun.Hand
Where Chamber = 'LOADED'
And Trigger = 'PULLED' 

Clipper You grab a bullet, get ready to insert it in the gun so that you can shoot yourself in the foot and discover that the gun that the bullets fits has not yet been built, but should be arriving in the mail _REAL_SOON_NOW_.

Oracle The menus for coding foot_shooting have not been implemented yet and you can't do foot shooting in SQL.

English You put your foot in your mouth, then bite it off. (For those who don't know, English is a McDonnell Douglas/PICK query language which allegedly requires 110% of system resources to run happily.)

Revelation [an implementation of the PICK Operating System] You'll be able to shoot yourself in the foot just as soon as you figure out what all these bullets are for.

FlagShip Starting at the top of your head, you aim the gun at yourself repeatedly until, half an hour later, the gun is finally pointing at your foot and you pull the trigger. A new foot with a hole in it appears but you can't work out how to get rid of the old one and your gun doesn't work anymore.

FidoNet You put your foot in your mouth, then echo it internationally.

PicoSpan [a UNIX-based computer conferencing system] You can't shoot yourself in the foot because you're not a host. or (host variation) Whenever you shoot yourself in the foot, someone opens a topic in policy about it.

Internet You put your foot in your mouth, shoot it, then spam the bullet so that everybody gets shot in the foot.


rmtroff -ms -Hdrwp <<'!' | lpr -Pwp2 &
.*place bullet in footer
.NR FT +3i
.in 4
.bu Shoot!
.in -4
.bp NR HD -2i

Genetic Algorithms You create 10,000 strings describing the best way to shoot yourself in the foot. By the time the program produces the optimal solution, humans have evolved wings and the problem is moot.

CSP (Communicating Sequential Processes) You only fail to shoot everything that isn't your foot.

MS-SQL Server MS-SQL Server’s gun comes pre-loaded with an unlimited supply of Teflon coated bullets, and it only has two discernible features: the muzzle and the trigger. If that wasn't enough, MS-SQL Server also puts the gun in your hand, applies local anesthetic to the skin of your forefinger and stitches it to the gun's trigger. Meanwhile, another process has set up a spinal block to numb your lower body. It will then proceeded to surgically remove your foot, cryogenically freeze it for preservation, and attach it to the muzzle of the gun so that no matter where you aim, you will shoot your foot. In order to avoid shooting yourself in the foot, you need to unstitch your trigger finger, remove your foot from the muzzle of the gun, and have it surgically reattached. Then you probably want to get some crutches and go out to buy a book on SQL Server Performance Tuning.

Sybase Sybase's gun requires assembly, and you need to go out and purchase your own clip and bullets to load the gun. Assembly is complicated by the fact that Sybase has hidden the gun behind a big stack of reference manuals, but it hasn't told you where that stack is. While you were off finding the gun, assembling it, buying bullets, etc., Sybase was also busy surgically removing your foot and cryogenically freezing it for preservation. Instead of attaching it to the muzzle of the gun, though, it packed your foot on dry ice and sent it UPS-Ground to an unnamed hookah bar somewhere in the middle east. In order to shoot your foot, you must modify your gun with a GPS system for targeting and hire some guy named "Indy" to find the hookah bar and wire the coordinates back to you. By this time, you've probably become so daunted at the tasks stand between you and shooting your foot that you hire a guy who's read all the books on Sybase to help you shoot your foot. If you're lucky, he'll be smart enough both to find your foot and to stop you from shooting it.

Magic software You spend 1 week looking up the correct syntax for GUN. When you find it, you realise that GUN will not let you shoot in your own foot. It will allow you to shoot almost anything but your foot. You then decide to build your own gun. You can't use the standard barrel since this will only allow for standard bullets, which will not fire if the barrel is pointed at your foot. After four weeks, you have created your own custom gun. It blows up in your hand without warning, because you failed to initialise the safety catch and it doesn't know whether the initial state is "0", 0, NULL, "ZERO", 0.0, 0,0, "0.0", or "0,00". You fix the problem with your remaining hand by nesting 12 safety catches, and then decide to build the gun without safety catch. You then shoot the management and retire to a happy life where you code in languages that will allow you to shoot your foot in under 10 days.

Ruby foot.shot(

CSS You try to shoot your foot -- and made it on IE 7 but not IE 6.

Tcl You first have to decide your object system, but by that time it already has one. You try to use gun::shoot {foot::create}, but you realize that you used braces instead of brackets. You spend hours staring at your code until you figure this out.

StackOverflow To shoot yourself in the foot, ask a bad question and 5 people will come and shoot your foot.

ASP .NET You discover that your client has your foot on his computer but the bullet is in the server database so you use SQL to extract the data for a Bullet object and create a gun class in C#. Then you write some HTML so your client can see the gun. You then discover that there are no controls for actually firing the gun at your foot through your client's browser so you create a mash-up of Javascript, JQuery, and AJAX to try and get the client's computer to shoot your foot. 10 languages, a million hours of testing/debugging, and 4 months later when your customer finally decides to run your web page, you learn that he is running IE6 and your new HTML5 code is not compatible with his old browser so the gun now appears to have two triggers. The client runs the page anyway but the postback gets lost and you never actually know if your foot got shot or not.

Stack Overflow: To shoot yourself in the foot, tell yourself to shoot yourself in the foot. To shoot yourself in the foot, tell yourself to shoot yourself in the foot. To shoot yourself in the foot, tell yourself to shoot yourself in the foot. - Windows programmer
yknow, I enjoyed this so much - Peter, you should consider reposting this as an individual question (how to shoot yourself in the foot in different languages), with each one a different answer.... (wiki of course ;-) ) - AviD
(108) See "Brevity is the soul of wit" -- Shakespeare - James McMahon
(4) Fatal Error: Cant find foot after so many shootings.... Thank you for so much of fun - Enjoy coding
(5) You can tell who the python programmers are. - DShook
(4) Is that why programmers never wear shoes? - Jarrod
Ha. I wrote the Revelation one, about 20 years ago. - Robert Rossney
That's really funny. I laughed and laughed. - Paul Nathan
Hillarious post! I wish I could memorize them all. - Jrud
(28) -100; this is not a quote, it's a novel - hasen j
So true about Sybase - RocketSurgeon
wild applause You got PowerBuilder down PERFECTLY. - Chip Uni
Too long. And it doesn't have python (you keep hitting significant whitespace between your toes)! - Andrew Grimm
import shootYourFoot - PPTim
(1) The metaphor starts to get a bit flaky about 3000 words in - kibibu
Just added one for Tcl. - new123456
LOL'd so hard at some of these... others aren't as good. Powerbuilder and Forth are particularly awesome. I added one for ASP .NET. - Jrud
need 3-4 days to complete this one quote....uuuuffffff - Sanjay Jain
[+118] [2008-09-12 15:28:07] Prakash

Owning a computer without programming is like having a kitchen and using only the microwave oven - Charles Petzold

(25) Are you saying I shouldn't be programming? - recursive
Are you saying I should use the regular oven? - JohnFx
(2) what if it's the only thing you know how to use? - Jason
Would now be a bad time to say that before I got married, I did in fact have a kitchen and only use the microwave? - Dinah
(5) Owning a computer without programming is like playing Tetris without knowing you can rotate the tetrominoes. - Stringer
@stringer your analogy became lost on me as soon as you called those blocks "tetrominoes." - Carson Myers
(21) I only use the phone. It gives me pizza. - Kevin Laity
(4) Are you saying I should make a backup before I burn my kitchen down? - Kevin Panko
What if I can't cook? - Sneakyness
So if my GF don't do programming, will she cook for me? - MyGGaN
... Which is exactly what programmers do in kitchens, so it matches. - zaratustra
[+115] [2008-09-14 23:58:24] talg

Bruce Ediger

The only "intuitive" interface is the nipple. After that it's all learned.

Attributed to Bruce Ediger while talking about X interfaces. - moritz
(1) False, the ability to talk to that interface is written in the BIOS - Pablo Marambio
(3) @Pablo: That's not a contradiction. - j_random_hacker
(11) The problem with that quote is that the premise is false: The nipple is not very intuitive, either. Babies have to learn to suckle. - divegeek
(1) Replace nipple with breathing =) - gnud
(6) Heh, the nipple does take a little learning, but I do prefer it to the touchpad. The real question is if me associating the word nipple with the "AccuPoint" mouse on my keyboard represents true psychological damage :P. - Daniel Brotherston
(5) @swillden: but they are born with the reflex to suckle (one of the many primal reflexes: moro/startle, suckling, grasping, hand to mouth). - sixlettervariables
[+113] [2008-09-12 15:27:00] Juan Manuel

God could create the world in six days because he didn't have to make it compatible with the previous version

(19) did he use a zero index or a 1 index array of days? that might throw out all our ideas of when the weekend is! - Mauro
Mauro's comment makes this an even better quote. - R. Martinho Fernandes
(4) at least he didn't use Perl to create it ... - Chris
Which means we're still in version 1.0. Generally it's a bad idea to buy the first version of anything, better that you wait for a couple of service patches. - Loadmaster
(4) Was the flood leaky code. - PeteT
(12) @Chris: But he did! See - amarillion
@Mauro, there are countries that have weekends on Friday and Saturday (and yes of course it is related to religion) - Unreason
The flood was a leaky abstraction - Jimmy
@LoadMaster: 1.0? Nah, far from it, more likely 0.4a if you see what's going wrong lately... - Valentino Vranken
[+107] [2008-09-12 12:37:45] Pat

We should forget about small efficiencies, say about 97% of the time: premature optimization is the root of all evil."

Donald Knuth

The complete quote:

There is no doubt that the grail of efficiency leads to abuse. Programmers waste enormous amounts of time thinking about, or worrying about, the speed of noncritical parts of their programs, and these attempts at efficiency actually have a strong negative impact when debugging and maintenance are considered. We should forget about small efficiencies, say about 97% of the time: premature optimization is the root of all evil.

Yet we should not pass up our opportunities in that critical 3%. A good programmer will not be lulled into complacency by such reasoning, he will be wise to look carefully at the critical code; but only after that code has been identified.

(2) "Premature optimization is the root of all evil" is generally attributed to C.A.R. Hoare as "Hoare's Maxim." So I think you've developed a recursive quote, where Pat is quoting Knuth who was quoting Hoare. - DGentry
All I need to do is convince Hoare to quote me and the universe's stack will overflow :-) - Pat
Unless quoting gets tail call optimization, of course. - Svante
(29) One of the most misunderstood quotes in programming, by the way. - Svante
(2) @DGentry: The quote is entirely Knuth's; the attribution (his own) to Hoare is an error. See… - ShreevatsaR
@Svante: True, but avoiding the premature optimization is at least less likely to do damage that can't easily be fixed later. - kyoryu
(5) +1 for the full quote. - peterchen
@kyoryu: Design is one of the earlist stages, and with the biggest optimization potential. Premature? - peterchen
(1) You can make anything you say sound more intelligent if you attribute it to Benjamin Franklin. - Benjamin Franklin - Jason
(1) I use the short version about every tenth SO answer I give. Novices waste inordinate amounts of time trying to optimize before they learn the basics of language/API/framework they are working in. - TechZen
[+102] [2008-11-15 14:30:46] orip

"When art critics get together they talk about Form and Structure and Meaning. When artists get together they talk about where you can buy cheap turpentine."

-- Pablo Picasso

quoted in "Code Complete" by Steve McConnell

(1) Wonderful. (15 c - notJim
(3) Both artists and critics create order; however, artists do it constructively and critics destructively. Thus, artists focus on how to grow, and critics on how to reduce; both viable approaches. - FeepingCreature
[+102] [2008-10-22 13:59:09] Vijay Dev

I would love to change the world, but they won't give me the source code

-- Saw this on a T-shirt. Dont know if someone had already mentioned the same quote here.

how about changing the machine code. - 動靜能量
[+93] [2008-09-16 07:00:12] community_owned

'If we're supposed to work in Hex, why have we only got A fingers?' - johnwm

I want this one a shirt. I just hurt myself laughing. - WolfmanDragon
Yep, it's absolutely hilarious - torbengb
A true programmer would know that we have 9 fingers. - Dan Herbert
(29) Actually, no. A true programmer won't mix up element count and element index ;) - mafutrct
(16) Get your grammar right, it's "A true programmer*s*". ;) - deceze
@deceze: ...what? - ajm
(2) @Andy: Try reading the first word in deceze's sentence as a hexadecimal number... ;) - j_random_hacker
actually we have 9 fingers - Chris
(3) You are all wrong, most human beings have 8 fingers and two thumbs. You count from 1, you index from 0. - scragar we have 7 fingers. - Sneakyness
(3) Actually, you have 10 digits. - peterchen
OMG - eyes burning - not a 'quote'. - Ducain
[+92] [2008-09-18 02:53:11] Steve Wranovsky

"Programming is like sex: one mistake and you have to support it for the rest of your life." -- Michael Sinz

Or at least until the company puts out a new product that uses a completely new code base to replace the old product. Or until you leave the company. :-) - RobH
(6) programming is like sex: all it takes is a little coffee and you can go all night long - Jason
(25) documentation is like sex: when it's good, it's great. When it's bad, it's still better than nothing. :) - Macke
@Macke: bad documentation is far worse than no documentation at all: at least you don't waste time figuring something out because it doesn't behave as documented due to wrong documentation! - Valentino Vranken
@Valentino: The comparison still holds for both documentation and sex; when it's wrong it's far worse that nothing at all! ;-p - Macke
[+92] [2008-09-13 04:55:59] Will Sargent

Something David Parnas said in an interview [1]:

Q: What is the most often-overlooked risk in software engineering?

A: Incompetent programmers. There are estimates that the number of programmers needed in the U.S. exceeds 200,000. This is entirely misleading. It is not a quantity problem; we have a quality problem. One bad programmer can easily create two new jobs a year. Hiring more bad programmers will just increase our perceived need for them. If we had more good programmers, and could easily identify them, we would need fewer, not more.


(2) This could easily fit well here:… - flodin
I take the point to be that creating jobs requires hiring more programmers. Let the hiring begin! - Seth
Same thing could be said of lawyers - ccook
I sorely wish I could up-vote this more than once... - Nathan Ernst
[+91] [2008-09-18 06:29:28] Mafti

Subject: Re: Computers in Science Fiction
From: Steve Taylor
Newsgroups: alt.folklore.computers, alt.history.future,, rec.arts.sf.written

howard wrote:
I have been using computers since 1969. Some of the programs I wrote in the 70's are still running.

Bummer. Have you tried moving variable initialisations out of inner loops? That can speed things up a bit...

[+90] [2009-02-02 08:53:41] Jan Dudek

My favourite:

Think twice before you start programming or you will program twice before you start thinking.

(I don't know the author)

(3) I love that. And it's so true. - Krzysztof Koźmic
measure twice, cut once. - aleemb
[+88] [2008-10-08 19:47:13] Thomas Bratt

If I had more time, I would have written a shorter letter.


(5) More commonly, and more appropriately for a programming forum, attributed to Blaise Pascal; however, Google also shows it attributed to Proust, T S Eliot, Mark Twain and, no doubt, others. - Jonathan Leffler
(2) There is a nice collection at: - Thomas Bratt
[+86] [2008-09-12 10:59:31] harriyott

Software is like sex: It's better when it's free. (Linus Torvalds)

(28) It never really is though... - uzbones
Oh uzbones :'( Had to giggle though :) - j_random_hacker
...and without errors - Jason
(10) Free sex??? How it's possible? - João Vieira
(29) It's better when you dont have to remove bugs before getting down to buisness.. - gnud
and with try catch and maybe finally blocks. - Braveyard
"Yes, but programmers have to pay for it, unless they do it themselves." -- Mitchell Fraser - EMP
(1) Woody Allen: “The most expensive sex is free sex.”: - allyourcode
@João Vieira Good question... \m/ - Microkernel
[+85] [2008-09-12 11:02:52] Geir-Tore Lindsve

"Profanity is the one language all programmers know best"

(2) +1 Grep the kernel source tree for "shit", "fuck", and other words. Most of it is "peice of shit hardware", but you'll occasionally run into the classic "memory management is a bitch" - Linus Torvalds in mem.c (I think) - new123456
[+80] [2008-09-14 16:53:38] gdessler

"Any sufficiently advanced technology is indistinguishable from magic." - Sir Arthur C Clarke

(2) I like Larry Niven's version too: Any sufficiently advanced magic is indistinguishable from technology. - R. Martinho Fernandes
(17) The more important corollary, IMAO, is "Any technology distinguishable from magic is insufficiently advanced". - chaos
And here I awlways thought Robert Heinlein had said that. - David
(5) And any sufficiently advanced incompetence is indistinguishable from malice. - Jeff Barger
Any sufficiently advanced technology is indistinguishable from a rigged demo. - Robert Rossney
Martinho, but Terry Pratchett USED it in a novel :) - Thorbjørn Ravn Andersen
[+80] [2008-10-31 10:30:20] Krakkos

"You start writing code, I'll go see what the customer wants"..

(3) Would be funnier if it wasn't sadly true!! - BradC
I'm not sure if it qualifies as a 'great' programming quote, but it sure is funny! - Holtorf
(6) Must be Agile . - tsilb
@BradC it is funny because of how true it is! - Krisc
[+78] [2008-10-26 18:02:55] Ather

Good programmers never write what they can steal or borrow

-- Jeff Atwood

simply superb jeff - naveen
(6) I think this originates in Steve Jobs. - strongopinions
(4) I am actually a big proponent of do-it-yourself programming. I like all of my projects to be 100% my code (except, of course, the framework on which it is built). I like to know that all bugs in a software are mine, and that I can go in, elbows-deep, and fix them. - John Gietzen
(5) @ John Gietzen So you wrote your own Regex Engine for Objective-C? - micmoo
(1) Violates the stand on the shoulders of giants principle. It also violates the abstraction principles (where available). In other words: you'd have a lot of the great thinkers in the industry mad at you. - chris.r
(7) This quotation has always been its own example. - Bob Aman
@John Gietzen: Can you differentiate between your own and other peoples' yet undiscovered bugs? Awesome. ;) - Macke
@John Gietzen: I often agree. I find that when I have to write my own code, it matches my actual needs. When I use other peoples' code, I don't have to write the functionality I need - but I do need to translate between my actual needs, and the API of the code I'm using. Frequently, that reduces to trading an easy problem for a hard one. - kyoryu
(5) John.. You write the micro code?? Very cool. If you're not writing the instructions for the chip, you're using other peoples code. - baash05
My information technology teacher always says this, and he says it's good because "we can't yet". - WTP
(2) Well, the "for a I need b, but for b I need c, but for c I need..." loop has to end somewhere, and the earlier the better. You know what they say: "to make a donut from scratch, you first have to make the universe." ;) - Gerardo Marset
[+73] [2008-12-05 19:04:24] Mike Hall

"Debugging is like farting - it's not so bad when it's your own code."

(5) Hahaha this made me laugh irl... - Filip Ekberg
awesome, really made me laugh :D - Pieter888
Original author is Paul Downey. - Domchi
[+70] [2008-09-16 15:11:21] Dougman

I love the project triangle as my software quote (

Good, Fast, Cheap: Pick Two

(1) In my Software Engineering class, we were taught that this model is incorrect because it overlooks a fourth variable: Features. - titaniumdecoy
(6) Feature is in Good, isn't it ? - e-satis
(1) This one should have a lot more upvotes! - J. Random Coder
(1) Good is what is needed for it to function well, feature is what is needed to sell it well. - Marco van de Voort
(2) I've had project teammates cite this and then quickly add, "by the way, you can't pick 'fast'." :) - Parappa
How does this graphic help me understand this concept? - allyourcode
@e-satis No, see Creeping Featurism - new123456
[+69] [2008-09-24 01:33:27] TheZenker

A side-bar in Code Complete, chapter 5:

When I am working on a problem I never think about beauty. I think only how to solve the problem. But when I have finished, if the solution is not beautiful, I know it is wrong. R. Buckminster Fuller

[+68] [2008-09-16 10:38:09] Dala

If you don't have time to do it right, when will you have time to do it over?

John Wooden, basketball coach

(2) +1 for helping me win an argument today. - alxp
[+67] [2008-09-18 03:18:09] community_owned

Clark's law, after J. Porter Clark in a usenet post [1]:

Sufficiently advanced incompetence is indistinguishable from malice.


Great. +1 if I still had any votes left... - R. Martinho Fernandes
[+65] [2008-11-24 15:09:41] Gordon Bell

"Don't worry about people stealing your ideas. If it's original, you'll have to ram it down their throats."
--Howard Aiken, creator of the IBM/Harvard Mark 1 Computer

I experienced this first-hand recently, so painfully true... - Zsolt Török
[+63] [2008-10-02 21:21:17] Gustavo Rubio

"Saying that Java is good because it works on all platforms is like saying anal sex is good because it works on all genders."

No offense to Java developers :)

(2) Only if all programmers are male... - Mr. Shiny and New 安宇
@Mr. Shiny and New: but that's sort of the point of the quote. The reason given is broken to begin with because although it works the same 'on' both genders, it doesn't work the same 'for' both genders. - TokenMacGuy
(17) Here, "no offence" actually means "offence meant in a sly way" :D - jrharshath
(9) Don't forget the animals ;) - Kevin D.
(3) that's obviously true for all 'cross platform' languages, not just for java - Chris
(1) @Chris: Of course, you, it's just the original says Java, you can use whatever platform you like (.Net, python, etc) - Gustavo Rubio
(10) Wow, I'll never think of garbage collectors the same way again. - Seth
[+63] [2008-09-12 16:14:43] Paul Wicks

Perhaps a little less serious than some, but still one of my favorites:

"... one of the main causes of the fall of the Roman Empire was that, lacking zero, they had no way to indicate successful termination of their C programs." — Robert Firth.

[+61] [2009-07-24 04:47:32] Daniel Bowen

I don't think this one's been mentioned yet:

You know, when you have a program that does something really cool, and you wrote it from scratch, and it took a significant part of your life, you grow fond of it. When it's finished, it feels like some kind of amorphous sculpture that you've created. It has an abstract shape in your head that's completely independent of its actual purpose. Elegant, simple, beautiful.

Then, only a year later, after making dozens of pragmatic alterations to suit the people who use it, not only has your Venus-de-Milo lost both arms, she also has a giraffe's head sticking out of her chest and a cherubic penis that squirts colored water into a plastic bucket. The romance has become so painful that each day you struggle with an overwhelming urge to smash the f---ing thing to pieces with a hammer.

-- Nick Foster ("Life as a programmer")

(3) And that's where every programmers I need to start from scratch rewrite desire comes in. - PeteT
(1) Amen, Bro, Amen! - Cassy
(1) Hahaha. LOL. wewhhh. - Codeglot
[+60] [2008-09-12 20:40:27] Raz

from the Programmers Dictionary:

recursion: see recursion

Programmer: an organism that turns coffee into software

dangling pointer: see recursion

I don't drink coffe - hasen j
recursion: see recursion is very funny, and indeed should be the definition. Read it 1000 times and hopefully a new programmer would get the point. - BBetances
Instead of coffe.. may be coke? - Romias
dangling pointer: see - 動靜能量
(2) Dangling Pointer: (syn.) Penis - Janie
"A mathematician is a machine that turns coffee into theorems." -- Paul Erdos - Robert Rossney
(4) Oh man, the dangling pointer entry was brilliant; took me a few seconds to get it. - Bob Aman
(1) Similar, from the Computer Contradictionary: infinite loop: see loop, infinite ... loop, infinite: see infinite loop - mwcz
From the Devil's DP Dictionary: Null, n. - David Thornley
[+58] [2009-11-20 14:51:30] AaronLS

Never memorize what you can look up in books. -Albert Einstein

I believe that being resourceful is one of the most important skills a developer can have due to the wide variety and breadth of problems they must solve from day to day. It seems like with every new problem the solution requires researching new libraries, tools, API's, etc.

(4) Sad that today learning model in many countries consist on memorizing instead of solving problems using sruff you are required to memorize - MoreThanChaos
(14) Possibly update to Never memorize what you can google. - PeteT
(2) I wouldn't follow this to the letter; someone who doesn't need to look up everything is going to be more effective than someone who does: - allyourcode
(2) @allyourcode True, but I would say alot of what is discussed in that article are not things you can really look up anyway. It is not so much memorizing facts, but developing skills. Yes, you can look up how to use Win32 API, but the point of the article seems that someone who has done real world implementations will have more foresight when designing and planning future implementations. This is more about the value of experience, which can't be looked up. This is especially true of articles about "best practices", because without prior experience you generally can't apply them correctly. - AaronLS
@AaronLS On the other hand, alot of that experience does comes from looking stuff up "in a book" (or on the web). Sure, there are certain details that you shouldn't try to memorize, but a significant chunk of all knowledge can be found in books, the web, etc. If you never memorized any such things, you'd spend practically all your time looking them up. - allyourcode
You still need to know what is in the books. - Thorbjørn Ravn Andersen
That's what the index is for :D - AaronLS
(2) The quote isn't saying that you shouldn't learn, or shouldn't have read the books in the first place. It's saying that knowing where to find information is more valuable than trying to hold it all in your head at once. Humans not being databases, the amount they can carry around uncompressed is limited. - Marcus Downing
[+56] [2008-09-15 22:47:48] Ryan Delucchi

It's morning already?

(3) A few years back, I've spent entire weeks without seeing the sun... - R. Martinho Fernandes
(2) that's rough ... that is much like how it was when I was going to the university. I don't really like doing that anymore, however. - Ryan Delucchi
+1 Ryan Delucchi: These days, if it can't be done by bedtime, it waits. - SnOrfus
Actually yes, SnOrfus. I've reached the point where sleep deprivation == me feeling very physically and mentally strained. - Ryan Delucchi
(2) I worked on a project that was in total Crash & Burn mode for 3 months. We got up, ate, worked, ate, worked some more, ate, worked until exhausted, went home and slept. We discovered we each had a slightly different circadian rhythm. Mine was 26.25 hours. Never again. - Peter Rowell
[+56] [2008-10-08 04:54:38] community_owned

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

- Phil Karlton

(7) Of the two, I think that Naming Things is probably the most neglected and the hardest. - Furis
[+54] [2009-05-31 16:57:29] Kedar Mhaswade

It is easier to optimize correct code than to correct optimized code.

(Another version of "Premature optimization is the root of all evil").

[+53] [2008-09-15 22:53:12] Slothman

"Getting a SCSI chain working is perfectly simple if you remember that there must be exactly three terminations: one on one end of the cable, one on the far end, and the goat, terminated over the SCSI chain with a silver-handled knife whilst burning black candles." -- Anthony DeBoer

"SCSI is not magic. There are fundamental technical reasons why you have to sacrifice a young goat to your SCSI chain every now and then." -- John F. Woods

I do not miss SCSI which was basically an analog technology masquerading as digital. The varying resistance in all the different devices and cables made it impossible to predict if any given configuration would work. Worse of all, of course, was that there was no competing technology to do the same thing. - TechZen
+1. There's a reason why the acronym joke "SCSI: System can't see it" exists. - TheBeardyMan
[+53] [2008-09-12 12:14:49] John Meagher

Java: Write Once, Debug Everywhere

(5) Can apply to JavaScript (a version by browser vendor! and more...) and even worse to CSS. - PhiLho
(9) Java: Write Once, Run Maybe - Krzysztof Koźmic
Java to JavaScript, what Car is to Carpet. - Sanjay Jain
[+52] [2008-09-16 03:52:27] community_owned

Software and cathedrals are much the same - first we build them, then we pray.

-- Anonymous

[+51] [2008-09-15 22:56:18] Ray Hayes

Rules for optimization:

  1. Don't do it.
  2. (for experts only) Don't do it yet.

Michael A Jackson

(6) Michael Jackson? - R. Martinho Fernandes
(3) Not that one, this one... - Ray Hayes
(1) +1. I think the full quote is: "Rule 1. Don't do it. Rule 2 (for experts only). Don't do it yet - that is, not until you have a perfectly clear and unoptimized solution." Also, his name is usually given as "Michael A. Jackson"; I'd change that too :) - Jonik
Hee Hee! or Shamone! - Shaun Mason
[+50] [2008-09-16 15:27:33] Matt Haughton

Confidence, n.: The feeling you have before you understand the situation

Separated this out from a previous answer - Matt Haughton
[+49] [2008-09-26 21:36:02] André

"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

(10) actually it is BSD, not UNIX - Mario
I know it from the Unix Haters Handbook ( and that uses Unix, but I have seen the BSD version of the quote as well... - André
That caused an involuntary workplace laugh. +1 - johnc
I don't get it .. - hasen j
(2) Just for completeness: LSD wasn't invented at Berkeley. - Thomas Bratt
Basel, Berkeley, whatever. - Robert Rossney
(1) LSD went in, BSD came out. - Sven
[+48] [2008-09-23 16:12:21] Pini Reznik

"Good judgement is the result of experience ... Experience is the result of bad judgement."

Fred Brooks [1]


(2) This is forgotten far too often. - kyoryu
[+48] [2008-09-12 11:09:07] Josef

If architects built houses the way programmers built programs, the first woodpecker to come along would destroy civilization.

Gerald Weinberg [1]


(11) Although I can see the cleverness of this one I have always hated it. It assumes that building software is as predictable and mechanical as building houses. - Sergio Acosta
Each house is unique and requires planning to make it work. Ask any builder or architect. Weinberg was not talking about cookie cutters but about the lack of planning and testing evident in much of the code written. - Josef
(1) How do you test a house for woodpecker-resistance, one wonders? ;) - Bernard
Start by using untreated wood so that the woodpecker has something to peck for.... in other words, by building buggy houses. o:-) - Josef
One of my favourites. - RobH
(10) I've said that when we have been building software for 10,000 years (about the amount of time we have been building houses) we'll be pretty good at it. - Jim Blizard
But houses don't make the bed for you or tell you how many times you've flushed the toilet today - PPTim
(6) I wasn't aware that architects BUILT houses... - advs89
@Jim Blizard: To paraphrase, then, when we had been building houses for as long as we've been building software, the first woodpecker to come along probably did destroy civilization? - Mike Burton
[+48] [2008-09-12 10:40:14] Greg Hewgill

All problems in computer science can be solved with another level of indirection.

-- David Wheeler

(8) ... except too many levels of indirection ;-) - David Schmitt
Nopes, all you need is another level of indirection when there is too much of it. - Vaibhav
(6) except performance. All performance problems can be solved by removing a level of indirection - Mendelt
(8) The rest of this quotation is "... but that creates another problem". - joel.neely
This quote is attributed to David Wheeler: - Rob Walker
Anyone who believes this has never called customer service. - allyourcode
[+48] [2009-02-24 10:14:47] Krzysztof Koźmic

"Java is a DSL to transform big Xml documents into long exception stack traces."

Scott Bellware

[+47] [2008-12-06 13:38:43] azollman

There are only two industries that refer to their customers as users.

(18) I believe the full quote is: "There are only two industries that refer to their customers as users: the computer industry and the drug trade." I don't know who originally said it, though. - RobH
It's Edward Tufte, of "The Visual Display of Quantitative Information" fame. - Kevin
[+45] [2008-09-12 23:27:09] Alvaro Rodriguez


A novice was trying to fix a broken Lisp machine by turning the power off and on.

Knight, seeing what the student was doing, spoke sternly: "You cannot fix a machine by just power-cycling it with no understanding of what is going wrong."

Knight turned the machine off and on.

The machine worked.

(4) Then obviously, Knight knew what was going wrong. - Bill Karwin
(16) Thank you captain obvious - Tmdean
(2) I pulled similar stunts on my friends so many times! - R. Martinho Fernandes
[+44] [2008-09-12 11:22:32] FrankS

If the code and the comments disagree, then both are probably wrong.

Another good website: "Quotes about Tech Writing" [1]


Code doesn't lie Comments Do ! - Yassir
[+43] [2008-09-24 00:53:45] Parappa

Man is the best computer we can put aboard a spacecraft...and the only one that can be mass produced with unskilled labor.

Wernher von Braun

The 'unskilled labor' part might explain a few things. - Sylverdrag
(3) If the labor was unskilled how skilled was the conception? - Kenneth Cochran - allyourcode
[+42] [2008-09-12 12:50:28] Chris B-C

A quote I've been using a lot lately dealing with ... difficult people

'Select' isn't broken

Fred Brookes (The Mythical Man-Month)

Speaking about the likelihood that, when it appears a common third-party tool is broken rather than your code, chances are that it is, in fact, your code.

The Pragmatic Programmer quotes this too. - Dan
(2) I'd say 4 in 5 times this is true. - Pop Catalin
... Unless you code in C++ and the ratio is 499 in 500 - Pop Catalin
(7) Imagine my surprise when one day, select() was broken. - Paul
(2) More like 499 of 500 times it's true. - kyoryu
[+42] [2009-02-28 09:44:19] raspi
There are only two types of people in the world:
1. Those that start array indices at 1
1. Those that start array indices at 0

-- Unknown

(4) In some languages like Delphi you can do things like [3..7], so you can define the min index and the max index. - tuinstoel
+1 to tuinstoel :-) - Timothy Chung
You can do this in Lua, because in lua everything is a table, You can have whatever indices you want. But if you want not to waste any space, you had better start at 0 - TokenMacGuy
(2) Defining any indexes you want is just super confusing, and almost totally useless. It's worse than totally useless if things thus defined can be passed as parameters to places where there definition is not in lexical scope. - Doug McClean
(2) Doug: that is a C centric view. Most languages that do this pass the bounds as well under the hood, so the information is preserved, including range checking. (which is the main advantage of this) - Marco van de Voort
This reminds me of VB6. You could specify your min and max index. Also, you better check the min and max index when performing iterations. - Chris Pietschmann
[+41] [2009-02-24 11:35:03] Donotalo

My favourites:

Thomas A. Edison

I have not failed. I've just found 10,000 ways that won't work.

Richard Pattis

When debugging, novices insert corrective code; experts remove defective code.

[+41] [2008-09-12 11:17:27] Rik

"Simplicity is prerequisite for reliability." -Edsger Dijkstra

I like it. But how come it is programming quote? - aartist
because Dijkstra said it, I'd guess - Ty W
[+41] [2008-09-12 10:41:20] Greg Hewgill

You can't solve social problems through technical means.

(32) Except, of course, with facebook. - John Gietzen
Have you read "Here comes everybody" by Clay Shirky? He basically says the opposite of that. - chakrit
(5) facebook has caused more social problems than it has solved. - SnOrfus
All of today's social problems will be solved one day, by robots. Then we'll have a whole new family of social problems. - RMorrisey
I've often said/quoted that, but SO actually goes a long way doing just that. Successfully. - peterchen
Is that Jobs, when talking about how sweet Web Objects would be? And why he got bored with giving Macs to schools? - Andrew Johnson
[+41] [2008-09-14 06:44:38] grok

Question: How does a large software project get to be one year late? Answer: One day at a time!

- Fred Brooks (The Mythical Man-Month)

I like this one because on a lot of projects people seem to think those disaster projects we all hear of happen to other people and not to them. Their assumption is that something really huge and drastic has to happen for projects to get horribly delayed, when really all a project needs is multiple incremental delays to throw the delivery dates way off.Answer: One day at a time!

[+41] [2008-10-04 17:08:38] Jason Baker

I had a mentor who was fond of quoting this (and it's turned out to be good advice):

It was a turning point in my programming career when I realized that I didn't have to win every argument. I'd be talking about code with someone, and I'd say, "I think the best way to do it is A." And they'd say, "I think the best way to do it is B. I'd say, "Well no, it's really A." And they'd say, "Well, we want to do B." It was a turning point for me when I could say, "Fine. Do B. It's not going to hurt us that much if I'm wrong. It's not going to hurt us that much if I'm right and you do B, because, we can correct mistakes. So lets find out if it's a mistake." ... Usually it turns out to be C.

Ward Cunningham [1]


(7) So often you get stuck in opinion-only battles which aren't ever going to be won, where the correct answer doesn't really exist. Usually the fact C is the final choice lets you avoid the "I told you so" line ;) - Matthew Iselin
So for ultimate smartassery you have to kinda pretend you know about this third option and always say hmm, I think you'll find out the right answer soon enough on your own and smile smugly. - Gleno
[+40] [2009-05-06 06:15:57] MikeJ

Pasting code from the Internet into production code is like chewing gum found in the street.

(26) Sometimes you just can't afford gum, and don't want to build a gum factory. - Ian Boyd
(5) But if you run it through the washing machine (a little sanity checking) first, surely it's okay to chew (include)... - sblom
(3) Or how about "is like reusing a syringe" - Chris Pietschmann
(1) I always take care to disinfect the gum first. - Kyralessa
Isn't that what open sources is all about? - allyourcode
[+40] [2009-06-15 15:39:29] community_owned

One programmer can do in one day what two programmers can do in two.

[+38] [2009-06-13 18:26:39] Ian Boyd

Java. The elegant simplicity of C++. The blazing speed of Smalltalk.

(1) simplicity of c++? HAR HAR HAR :D I suppose there is a similar sarcasm in the blazing speed of Smalltalk as well - Konstantinos
(32) Welcome to the self-evident joke. - Ian Boyd
[+38] [2008-09-16 05:13:04] user11087

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

The less of it the better? - Andrei Krotkov
(32) This is a duplicate - Zuu
[+37] [2008-09-12 10:51:43] Jonathan Webb

Beware of programmers who carry screwdrivers.

-- Leonard Brandwein

(6) I think it refers back to the days when writing bad code could seriously wreck computer equipment, so programmers who had screwdrivers was a good sign that they needed watching. I've certainly known some great programmers who should be kept well away from tinkering with hardware at all costs! - Jonathan Webb
(1) Seems to me a screwdriver would be the mark of an experienced programmer. - Kyralessa
[+37] [2009-04-14 22:53:03] WOPR

To paraphrase P.J O'Rourke :

"Giving pointers and threads to programmers is like giving whisky and car keys to teenagers"

[+36] [2008-09-12 12:49:57] community_owned

Debugging code is at least twice as hard as writing it in the first place. Therefore, if you write a program as cleverly as possible you are, by definition, not smart enough to debug it. (Brian W. Kernighan)

Well over half of the time you spend working on a project (on the order of 70 percent) is spent thinking, and no tool, no matter how advanced, can think for you. Consequently, even if a tool did everything except the thinking for you -- if it wrote 100 percent of the code, wrote 100 percent of the documentation, did 100 percent of the testing, burned the CD-ROMs, put them in boxes, and mailed them to your customers -- the best you could hope for would be a 30 percent improvement in productivity. In order to do better than that, you have to change the way you think.

There is not now, nor has there ever been, nor will there ever be, any programming language in which it is the least bit difficult to write bad code.

Human beings are not accustomed to being perfect, and few areas of human activity demand it. Adjusting to the requirement for perfection is, I think, the most difficult part of learning to program.

That's awesome. Is it original to you? - Paul Tomblin
(4) Programming languages can improve productivity by removing the need to do much thinking. Most of this thinking that can be removed starts with "WTF?!?!?" or "How the?!!?.." - BCS
(1) “the best you could hope for would be a 30 percent improvement in productivity.” Clearly written by someone who’s never used a framework, language or paradigm that presented a higher level of abstraction than what he was using before. - Ahruman
[+35] [2008-09-12 16:37:02] Antti Sykäri

Two favorite quotes about merits of dynamic typing [1] vs. static typing [2]:

Think of compilation as cooking. Dynamic typing means the steak is juicy and still a little red, like red meat is supposed to be. Static typing means you burnt it to a crisp.

Erik Naggum [3]

It seems to me you can program with discipline or you can program with bondage and discipline. You can't avoid the discipline either way, but bondage appeals to some people.

Patrick Logan [4]

The next one is not primarily about programming but can be applied to it as well:

One who works with their hands is a laborer.
One who works with their hands and their mind is a craftsman.
One who works with their hands, mind and heart is an artist.


(14) The problem with that first quote is that I (along with quite a few other people) prefer my steak closer to well done. I also prefer my software well done. :-) - T.E.D.
[+35] [2008-09-12 20:09:47] Redbeard 0x0A

From the Linux kernel (2.4 series I believe), drivers/usb/printer.c:

static char *usblp_messages[] = { "ok", "out of paper", "off-line", "on fire" };

(4) - BCS
(2) That's going on my next error message. - R. Martinho Fernandes
This is the first one that made me laugh out loud - RMorrisey
Oh, nothing like backwards compatability :) - Thorbjørn Ravn Andersen
[+35] [2008-09-18 23:26:07] RET

"Nothing is more permanent than a temporary solution"

Thomas' First Law

I also like:

Fast, Cheap, Reliable: Pick any two.

first one is great! - J. Random Coder
[+35] [2009-04-16 05:37:18] Benjol

Wow, I can't believe it. 16 pages and apparently no mention of Wes Dyer's classic:

Make it correct,
make it clear,
make it concise,
make it fast.

In that order.


[+33] [2009-10-01 04:32:30] Georg Fritzsche

Must be zero, or equal to MAPI_UNICODE. In either case, however, this parameter is ignored.
... MSDN [1]


[+33] [2008-09-12 12:52:52] Matt Haughton

One of my favourites is written as a definition

Program, n.: (1) A magic spell cast upon a computer to enable it to turn your input into error messages. (2) v.t., A pastime similar to banging your head against a wall but with fewer opportunities for reward.

By Graham Storr (The Fairly Concise New Scientist Magazine Dictionary of scientific words in current use)

make these two separate answers so that they can be voted on individually - EndangeredMassa
Separated part of this out to a different answer - Matt Haughton
[+32] [2008-09-13 07:35:03] chakrit

"The best code is no code at all."

True. One has to understand this deeply. If there is no code, no programmers will have jobs. - aartist
(3) @aartist: Rather, if you can remove code but keep the feature, it's the best coded feature ever. (by appling reuse, frameworks, etc.) - Macke
Raymond Chen's collorary: "The fastest code is the code that doesn't run." - Ian Boyd
[+32] [2008-09-15 12:46:55] Gern Blandston

Before software can be reusable it first has to be usable.

who said that? thats most of the time a big reason why coding geeks aren't able to come up with a product - Chris
(7) also, duplicate - Marius Gedminas
I guess this quote was reusable. - John Kaster
[+32] [2008-09-16 10:22:59] Jean-Pierre Rupp

Easy things should be easy and hard things should be possible

Larry Wall

That basically defines PERL. (Well, maybe not the first half...) - new123456
[+32] [2009-05-18 12:07:17] Marco van de Voort

On a wall in our building:

Theory is when one knows everything, but nothing works.

Practice is when everything works, but nobody knows why.

In this building, Theory and Practice are in perfect harmony. Nobody knows why nothing works.

[+31] [2008-09-16 19:16:54] Antti Sykäri

How do we convince people that in programming simplicity and clarity —in short: what mathematicians call "elegance"— are not a dispensable luxury, but a crucial matter that decides between success and failure?

Edsger W. Dijkstra [1]


[+31] [2008-09-17 01:17:49] community_owned

It takes an intelligent person to build something complex; it takes a genius to build something simple

[+30] [2009-11-17 18:40:43] Macha

You can't parse [X]HTML with regex. Because HTML can't be parsed by regex. Regex is not a tool that can be used to correctly parse HTML. As I have answered in HTML-and-regex questions here so many times before, the use of regex will not allow you to consume HTML. Regular expressions are a tool that is insufficiently sophisticated to understand the constructs employed by HTML. HTML is not a regular language and hence cannot be parsed by regular expressions. Regex queries are not equipped to break down HTML into its meaningful parts. so many times but it is not getting to me. Even enhanced irregular regular expressions as used by Perl are not up to the task of parsing HTML. You will never make me crack. HTML is a language of sufficient complexity that it cannot be parsed by regular expressions. Even Jon Skeet cannot parse HTML using regular expressions. Every time you attempt to parse HTML with regular expressions, the unholy child weeps the blood of virgins, and Russian hackers pwn your webapp. Parsing HTML with regex summons tainted souls into the realm of the living. HTML and regex go together like love, marriage, and ritual infanticide. The cannot hold it is too late

//snip (click link for rest)

bobince on StackOverflow [1]


[+29] [2009-04-07 12:51:04] Jay Levitt

Abraham Lincoln once said:

Give me six hours to chop down a tree and I will spend the first four sharpening the axe.

But for me, the big problem with "axe sharpening" is that it's recursive. In a Zeno's paradox [1] kind of way: You spend the first two thirds of the time allotted to accomplishing a task actually working on the tool. But working on the tool is itself a task that involves tools: to sharpen the axe, you need a sharpening stone. So you spend two-thirds of the sharpening time coming up with a good sharpening stone. But before you can do that you need to spend time finding the right stone. And before you can do that you need to go to the north coast of Baffin Island where you've heard the best stones for sharpening come from. But to get there, you need to build a dog sled....

-- James Gosling


That's a wicked problem - Mike Robinson
(2) I like this because it implies that the work I'm doing now at 33 is just preparation for the ultimate masterpiece I'm going to ship the day before I die. :) - Scott Whitlock
(2) And thus we have Meta Meta Meta .... Planning. No kidding, I have actually heard this term used seriously before. - Daniel Brotherston
If it's really like Zeno's paradox, it isn't really a problem: Of course, if the ratio between successive terms is >= 1, then you have a problem. - allyourcode
The recursion needs a base case. Got to draw the line somewhere. Lincoln drew the line right at the axe. - mudge
@allyourcode I've begun saying "Give me four hours to chop down a tree, and I will spend the first six sharpening the axe." Seems more accurate. - Jay Levitt
[+28] [2009-09-22 21:45:46] Larsenal

Programmers usually have good reasons for making bad decisions.

[+28] [2009-02-02 05:59:35] community_owned

Let the code run free, if it needs to be debugged, it will come back.

(1) Made me smile :) - VVS
(1) yes that was a nice one - LegendLength
[+27] [2009-09-22 20:19:43] Rachel

If you can't explain something to a six-year-old, you really don't understand it yourself.

This quote fits from Architecture Point of Software. You need to understand different component of Architecture properly so that you can explain your team how their particular module/component fall in place together to make complete Software

[+27] [2009-05-18 10:13:31] Konstantinos

By MCConnell in Code Complete

"The fact that a design uses inheritance and polymorphism doesn't make it a good design"

[+27] [2008-09-16 07:00:58] community_owned

I found this to be hilarious, but can't remember who first said it: "Love is real, unless declared an integer."

(2) That's only true if you don't program in Fortran (77 or older). In Fortran 77, Love is an integer unless declared real. - Jonathan Leffler
[+27] [2008-09-29 23:45:23] Cristián Romo

It should work!

- a programmer's last words.

(2) I thought that was "Ooh, what does this button do?" - Steven A. Lowe
[+27] [2008-09-12 15:30:20] Juan Manuel

My programs don't have bugs, they just develop random features

(7) Verizon once told me that adding advertisements to MMS was a feature that distinguished their service from others. - Chris Bartow
My friend had a comment similar to this while developing something. I caught a security hole in what he wrote (he was new to programming,) and he wittily said "Hey, if anyone asks, we'll just do like Microsoft: That's not a bug, that's an unexpected feature!" - John
[+26] [2008-09-14 11:45:35] theschmitzer


In C, its easy to shoot yourself in the foot. C++ makes it more difficult, but when you do, you'll blow your whole leg off.

[+26] [2009-05-06 05:35:35] guardi

"Multi-threading is the art of screwing things up before, during or after something else."

[+26] [2009-01-08 20:10:35] Joe Behymer
if (!kill) strength++;

(18) try { kill(); } catch { strength++; } - Per Erik Stendahl
[+26] [2009-12-13 19:08:23] Mohit Jain

Programming languages are like girlfriends: The new one is better because you are better.

[+25] [2009-01-15 20:26:28] MattK

"When all you have is a hammer, everything starts to look like a nail." --Source Unknown

(29) When C++ is your tool, everything starts to look like a thumb. - Scottie T
I think the actual quote is, "If all you have is a hammer, everything starts to look like a nail." - Phantom Watson
[+25] [2009-08-10 10:48:21] Jon Hopkins

"That time in Seattle... was a nightmare. I came out of it dead broke, without a house, without anything except a girlfriend and a knowledge of UNIX."

"Well, that's something," Avi says. "Normally those two are mutually exclusive."

-- Neal Stephenson, "Cryptonomicon"

+1 for a quote from a great book. - quant_dev
[+25] [2008-09-14 14:25:57] Chris Upchurch

Engineering is the art of doing with one dollar what any damn fool can do with two.

From Space Systems Failures by David M. Harland and Ralph D. Lorenz

[+24] [2008-09-12 22:38:17] Pat

It works on my machine - anonymous programmer..

@ Gulzar [1]

Your quote reminded me of another great quote:

I don't care if it works on your machine! We are not shipping your machine! - Ovidiu Platon

[1] #58780

It's Ovidiu Platon (notice the 'O') - Andrei Rinea
I'll admit to having been tempted by the idea of shipping the machine on which it does work. - Doug McClean
see - J. Random Coder
[+24] [2008-09-12 16:51:09] ianix

I know it doesn't sound like a big effort, but programmers are really, really lazy, and they like to minimize motion. They'd use feeder tubes if the Health Department would let them.

-- Steve Yegge

This is so true! - mcv
[+24] [2009-11-17 19:17:46] Xolve

UNIX is user friendly. Its just picks whom it want to be friends with.

[+23] [2009-11-23 03:47:59] hexium

"It depends" is the answer to all good software engineering questions, but to be a good software engineer, you should know on what it depends, and why.

-- User:hexium, on StackOverflow [1].


(3) Actually "It depends" is the answer to MOST good software engineering questions. As for whether it's the answer to your question, well, it depends. - Windows programmer
[+23] [2009-11-30 16:47:08] bob quinn

You're never done, you just run out of time.

[+23] [2008-09-12 16:30:35] Rob Wells

Program testing can be a very effective way to show the presence of bugs, but is hopelessly inadequate for showing their absence.


The competent programmer is fully aware of the limited size of his own skull. He therefore approaches his task with full humility, and avoids clever tricks like the plague.

Both from Edsger Dijkstra's paper - The Humble Programmer (EWD340) [1].


[+23] [2008-10-19 03:08:26] RazMaTaz

Good design adds value faster than it adds cost.

-- Thomas C. Gale

Also Joel Splosky (Software development is the art of adding value faster than cost.) - Ian Boyd
[+22] [2008-11-28 07:34:52] hawkeye

"The programmer, like the poet, works only slightly removed from pure thought-stuff. He builds his castles in the air, from air, creating by exertion of the imagination. Few media of creation are so flexible, so easy to polish and rework, so readily capable of realizing grand conceptual structures."

—Fred Brooks, The Mythical Man-Month

[+22] [2008-09-12 21:49:12] David HAust

Phil Haack has a great post on 19 Eponymous Laws Of Software Development [1].

One of my favourites:

Parkinson’s Law
Otherwise known as the law of bureaucracy, this law states that...

Work expands so as to fill the time available for its completion.


(3) corollary: it's easy to finish on time; cut features until you run out of time - BCS
Like the ability of some OS to eat up your machine's memory! - Pablo Marambio
[+22] [2009-12-02 17:42:29] Jordan Ryan Moore

Sam Redwine:

Software and cathedrals are much the same. First we build them, then we pray.

(4) This is a duplicate. - Vebjorn Ljosa
[+22] [2009-12-22 09:54:02] RahulJ

Theory is when you know something, but it doesn't work.
Practice is when something works, but you don't know why.
Programmers combine theory and practice: Nothing works and they don't know why.

(3) This is duplicated above. - John Kaster
[+21] [2009-12-11 21:15:19] Tor Valamo

With all due respect John, I am the head of IT and I have it on good authority. If you type "Google" into Google, you can break the Internet.

Jen, "The IT Crowd"

[+21] [2009-11-24 07:15:12] Austin Kelley Way

The second row.

[+21] [2009-07-10 20:01:20] Kenster

The two most common elements in the universe are hydrogen and stupidity.

-- Harlan Ellison

"...when hydrogen condenses, it forms stars. When stupidity condenses, it forms civilizations." :) - terminus
[+20] [2008-09-13 11:50:32] christian studer

My physics teacher used to say:

Always code as if a single bug will bring the building down.

that could be true if you have a bug in an ICBM controller - Lie Ryan
And then you would never code in life!!! <From experience> - Microkernel
Why did you physics teacher say that? - Thorbjørn Ravn Andersen
(1) There were no IT teachers back then. So physics teachers teaching IT stuff was an obvious choice. - christian studer
[+20] [2008-09-12 15:48:36] Sam Wessel

There is no IRL, only AFK

-- Unknown

(1) what do those two acronyms stand for? - Nathan
(13) If you have to ask, you'll never know - Sam Wessel
(2) @Nathan, In Real Life and Away From Keyboard. - Marius Gedminas
Or at least not for about a year. :p - GolezTrol
[+20] [2008-09-12 16:38:36] JasonS

PC Load letter? What the @#$%! is PC Load Letter?!?!

Also nice: lp0 on fire - - Michael Stum
It means you should load "Letter' size paper in the Paper Cassette. What's so cryptic about that? - Andrew Swan
(6) Outside the US and Canada, printers are the only place you will encounter the term 'Letter' for a paper size, and PC will always be first an acronym for Personal Computer. That leaves 'Load' as the only non-confusing word... - Colin Pickard
(4) For those not getting it - this is a reference to - kenj0418
Actually PC here means Printer Code. - Adam Luter
You start to wonder why they still use letter, when paper is one letter less ;) - alexanderpas
(1) paper is one letter less, mail is two letter less, A4 is four letter less. what's eight letter less? - Lie Ryan
[+20] [2009-11-24 07:10:52] Matt Davis

A common mistake that people make when trying to design something completely foolproof is to underestimate the ingenuity of complete fools.

-- Douglas Adams

[+19] [2009-11-14 14:05:58] Yassir

C++ : Where friends have access to your private members.

source [1]


[+19] [2008-09-13 07:34:13] Łukasz

Waldi Ravens

A C program is like a fast dance on a newly waxed dance floor by people carrying razors.

i lol'd (padding to make it 15 characters) - Ian Boyd
(2) This is so good! C is very hazardous for greenhorns: they have to be careful, but those who really know C have nothing to fear. - wsd
(1) @wsd : let's say you are a professional dancer dance on a newly waxed dance floor by people carrying razors will you be fearless ? - Yassir
I don't fear C!!! - Microkernel
would be significantly improved if the word "dance" weren't repeated, particularly if it were replaced by a specific example, e.g. "A C program is like the cha-cha being performed on a newly-waxed dance floor by people carrying razors." - Jordan
[+19] [2008-10-21 11:57:26] ΤΖΩΤΖΙΟΥ

God did not create the world in seven days; for six days he screwed around and then pulled an all-nighter.

(This also explains a lot :)

And he was able to get it done in one night because he uses Lisp. - Cristián Romo
Oblig: - gnud
[+18] [2008-12-06 11:52:32] Serge - appTranslator

"if you are a programmer working in 2003 and you don't know the basics of characters, character sets, encodings, and Unicode, and I catch you, I'm going to punish you by making you peel onions for 6 months in a submarine."

Joel Spolsky [1]


[+18] [2009-10-16 09:35:33] Paul McGuire

The origins aren't in programming, but this certainly is relevant when getting the requirements from the customer:

If we'd asked the customers what they wanted, they would have said "faster horses" - Henry Ford

[+18] [2008-09-14 14:29:05] Chris Upchurch

Laurence Gonzales

The word “experienced” often refers to someone who’s gotten away with doing the wrong thing more frequently than you have.

[+18] [2008-09-12 16:05:56] laurie

"Plan to throw one away; you will anyway"

(5) If you plan to throw one away, you'll end up throwing two away. - Dour High Arch
(2) It has to be said, that this was written more then 20 years ago, in an age, where few people had a cyclical model of development in mind. Since then Brooks has said about that exact quote; "this I now perceive to be wrong, not because it is too radical, but because it is too simplistic ... [since the waterfall model is assumed] it fails to get at the root of the problem." - Svend
(1) even if you don't throw your code away, you'll at least throw your keyboard anyway - Lie Ryan
[+18] [2008-09-12 14:41:46] Mark Cidade

See Alan Perlis' epigrams in programming [1]:

  1. One man's constant is another man's variable.

  2. Functions delay binding; data structures induce binding. Moral: Structure data late in the programming process.

  3. Syntactic sugar causes cancer of the semicolon.

  4. Every program is a part of some other program and rarely fits.

  5. If a program manipulates a large amount of data, it does so in a small number of ways.

  6. Symmetry is a complexity-reducing concept (co-routines include subroutines); seek it everywhere.

  7. It is easier to write an incorrect program than understand a correct one.

  8. A programming language is low level when its programs require attention to the irrelevant.

  9. It is better to have 100 functions operate on one data structure than 10 functions on 10 data structures.

  10. ...


[+18] [2009-12-10 09:50:07] griti

Real Programmers don't comment their code. If it was hard to write, it should be hard to understand.

This and other "facts" found here [1]


[+17] [2009-11-21 15:16:53] Alceu Costa

'Goto' is always evil, like in 'goto school' or 'goto work'.

(3) But 'goto home' and 'goto vacation' is nice. :) - RahulJ
(4) goto home == goto wife.location?it is evil too. - Behrooz
(2) goto vacation vacation: Me.Money = Me.Money - 1000 - CodeFusionMobile
[+17] [2009-11-21 22:20:46] user58670


(dusk) python is pretty easy to leaRN
(dusk) you write pseudocode, and you indent it correctly :)

(maniaman) so lets say i have a daTE
(aNdAres) who's the lucky girL?
(maniaman) if that date occurs between 2 dates in a single row in a database

(JAy) Did you hear about the Linux-car finishing last in the indy500?
(MRbEek) I did now ;-)
(MRbEek) Not surprised though... You know how impossible it is to find a decent 
         driver for linux hardware?

(HAx.13307) U're all lame as hell here!!!!! I can hack u all in no time! just 
            tell me your ip and u're dead!
(MAler.home) try mine
*** Signoff: HaX.1337 (Connection reset by peer)
(DAmz|dispute) wow. never thought such a retard nick can get his hands on 
               something actually working xD

(SIxfEet-) rejected by a computer script, new low in my life
(NTT) well, at least u didnt have cybersex with one of those bots that pm's you 
      here on mirc
(SIxfEet-) well i tried, but it replied with "lets just be friends..."
(SIxfEet-) =(

(CRaghAck)Theory is when you know everything and nothing works.
(CRaghAck)Practice is when things work, and noone knows why.
(CRaghAck)Here we combine theory and practice.
(CRaghAck)Nothing works and noone knows why.

(mentor) How do you escape handcuffs?
(mentor) backslashes 

(CHipper) Hexidecimal counting systems are awesome!
(CHipper) On a scale from 1 to 10, I give them an E

(mav) I've always wanted to change my legal name to ;DROP DATABASE; and see what 
      kind of havoc ensues...

(slifty) Your mom is so fat she sat on a binary tree and turned it into a linked 
         list in constant time!

(sm-) how would i check a mysql database to see if a table exists?
(ALpha232) put down a table cloth, if it doesn't turn into a rug, then it exists

Maybe_Factor: C++ doesn't have a compiler, it has a complainer.

scruss: a guy called us and complained because his dsl didn't work, 
        come to find out he had win98 and actually took a knife and 
        trimmed the rj45 connection to fit into the rj11 jack

(ROguefOxx) I'm going to go outside
(ROguefOxx) where no nerd has gone before
(ROguefOxx) pray for me 

* +ramoth4 slaps politik with an unsigned long double
* +politik comes back with a _uint64 uppercut
* +ramoth4 pulls out a struct and returns fire
* +politik corrupts ramoth's heap
* +Fire_Elemental-Coding- ducks to avoid leaked memory
* +politik pops Fire_Elemental-Coding- square in the stack
* +ramoth4 stuffs politik's face in the bitbucket, and begins to operate on 
           nil pointers
* +politik throws uncatchable exceptions around the room
* +ramoth4 dodges skillfully with his try-catch block
* +politik cuts off ramoth's private member
* +ramoth4 encapsulates the wound in a protected class
* +politik destroys all foes with up-casts to inappropriate derived classes!
* +politik is out of ideas
* +politik :: ~politik();
* +ramoth4 declares flipcode his namespace!
(+ramoth4) I win!
* +ramoth4 beat C++.
(+ramoth4) The last guy was hard.

(ruffkin2) HAHAHAH dat dude you sent me iz enfected wit sub7 im 
           fuckin with him now
(andrw) oh good, format his computer
(TEsticular_ONe) format his computer
(THegReaterzEro) format him 

(typobox43) programming without arrays is like swimming without trunks.  
            it works, but for most people, it's ugly.

(FEren) I'm a network engineer, and I'm o-kay / I plot all night and capture 
        packets all day.
(AThena) You smack down PCs and eat Cat5, and go to the lavatory? On wednesdays 
         you hunt scriptkiddies, and have roasted punk for tea?
(SLipstream) Old MacDonald had a network. EIGRP. And on this Network, he had 
             some packets. EIGRP. With an ACK, ACK, here, and an ACK, ACK, 
             there. Here an ACK, there an ACK, everywhere an ACK-ACK. 
             Old Macdonald had a Network. EIGRP.

(hydro`) i had this weird dream
(hydro`) someome broke into the house
(hydro`) and changed the wallpaper on the computer and left

(GHo5t) i decided against that php bumper sticker
(GHo5t) i don't want my friends from home to think i turned into a super geek
(GHo5t) i can just imagine what would happen when they ask what 'php' meant
(ASLeep)I don't drive so my PHP sticker is on my laptop.
(ASLeep) Of course, I'm getting my php tattoo this weekend so it doesn't matter.

ACK ACK here is awesome. lol - Earlz
[+17] [2008-09-17 02:44:12] Chris Noe

Your code is both good and original. Unfortunately the parts that are good are not original, and the parts that are original are not good.

One of the best! - Auxiliary
[+17] [2008-11-03 09:17:30] naveen

Any fool can write code that a computer can understand. Good programmers write code that humans can understand. ~Martin Fowler

[+17] [2008-11-15 01:56:12] Robert Gamble

It has been said that the great scientific disciplines are examples of giants standing on the shoulders of other giants. It has also been said that the software industry is an example of midgets standing on the toes of other midgets.

-- Alan Cooper

It probably didn't originate with him. I heard essentially the same quote from Harold Mauch when I worked for him at Percom Data in 1980. He put it "in the computer industry we mostly stand on each other's feet". - Darron
[+16] [2008-11-28 07:24:11] unwind

Having grown up coding C, I prefer the double quote, " (ASCII 34).

[+16] [2008-10-29 13:11:59] netsuo

Not really a programmers quote, but I like to remind:

They did not know it was impossible, so they did it!
- Marc Twain

[+16] [2009-06-13 14:23:13] crauscher

Later equals never

[+16] [2008-09-14 14:26:59] Chris Upchurch

Phil Reed

For a list of the ways in which technology has failed to improve our quality of life, press 3.

[+16] [2008-09-15 10:39:40] Manrico Corazzi

I (...) am rarely happier than when spending an entire day programming my computer to perform automatically a task that would otherwise take me a good ten seconds to do by hand. Douglas Adams, Last Chance to See

Programming is not a zero-sum game. Teaching something to a fellow programmer doesn’t take it away from you. I’m happy to share what I can, because I’m in it for the love of programming. The Ferraris are just gravy, honest! John Carmack, from Michael Abrash' Graphics Programming Black Book

[+16] [2008-09-16 06:11:51] Kevin Conner

Here are some of my favorites that don't all come from the world of programming, but certainly apply to it. And thanks to this thread, I have new favorites too!

On pursuing solutions:

People who are really serious about software should make their own hardware. – Alan Kay

On simplicity:

Consider the postage stamp: its usefulness consists in the ability to stick to one thing until it gets there. – Josh Billings

On management:

Don't tell people how to do things, tell them what to do and let them surprise you with their results. – George S. Patton

On making time for projects:

Time is never found. – A good friend of mine

On fear:

I wish in the past I had tried more things 'cause now I know that being in trouble is a fake idea. – Raymond Quentin Smuckles [1]

On multitasking:

Multitasking is the art of distracting yourself from two things you’d rather not be doing by doing them simultaneously. – I think I read this on [2].

On obsolete standards:

No I ain't got a fax machine! I also ain't got an Apple iic, polio, or a falcon! – Ray Smuckles [3] again


[+15] [2008-10-06 19:16:38] philippe

"Code never lies, comments sometimes do"

Ron Jeffries said this once, someone else could have say it before.

[+15] [2009-05-15 17:42:17] Joe Stropich

Cursing is the one language every programmer knows.

(7) This is a duplicate. - John Gietzen
[+14] [2009-03-28 03:22:18] Alex B

“A computer programmer is a device for turning coffee into bugs.”

Bram Moolenaar (author of Vim)

(3) :( <--sad face, and comment extension before SO will take it - Ian Boyd
(1) And other code is a by-product of this process. - Kuroki Kaze
[+14] [2009-07-24 05:00:14] Ludovic

(Note that I could be wrong about the authors of the quotes.)

And my favorite:

(3) Would love to vote that last one up. These should be in separate posts. - sblom
[+14] [2009-08-06 07:24:53] user118657

God is Real, unless declared Integer.

(J. Allan Toogood)

[+14] [2008-10-04 04:01:22] mpeters

Great Larry Wall Quotes:

And lots more here [1]


[+14] [2008-09-14 17:05:42] Luke Girvin

Paul Graham has some good quotes on his web site. [1]

I particularly like Greenspun's Tenth Rule:

"Any sufficiently complicated C or Fortran program contains an ad hoc informally-specified bug-ridden slow implementation of half of Common Lisp."


It applies to the Java system I work on, too ;-) - quant_dev
[+14] [2008-09-12 15:29:52] Matt Haughton

Short but sweet quote from Jon Bentley [1], to whom respect is well deserved

People who deal with bits should expect to get bitten


The same can be said for bytes. Installing Service Pack 3 on Windows XP just took a giga-byte out of my hard disk - TonJ
[+14] [2009-11-21 22:33:36] Jeremy Morgan

"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

(2) This is an exact duplicate. - Vebjorn Ljosa
[+14] [2009-11-14 14:41:37] Domchi

All parts should go together without forcing. You must remember that the parts you are reassembling were disassembled by you. Therefore, if you can't get them together again, there must be a reason. By all means, do not use a hammer. (IBM Manual, 1925)

[+14] [2009-11-30 14:49:01] David Pratt

There is nothing quite so permanent as a quick fix.

[+14] [2009-12-02 02:47:00] Ken Pespisa

"Shipping is a feature." -- Richard Campbell.

But not a feature that can be cut from the schedule. - Kyralessa
[+14] [2009-12-17 15:47:06] Luciano

If C didn't exist, we would be programming in OBOL, PASAL or BASI


Sorry for my English.

[+13] [2009-11-25 07:28:59] Justin

“The question of whether computers can think is like the question of whether submarines can swim.” (Edsger W. Dijkstra)

(3) That's not a double post, but quintripple? - Gerrit
[+13] [2008-09-16 06:33:44] community_owned

"The Internet? Is that thing still around?"

"They have computers, and they may have other weapons of mass destruction."

"The question of whether computers can think is like the question of whether submarines can swim."

(2) +1 for dijkstra - John Gietzen
[+13] [2009-07-15 15:45:45] CodeFusionMobile

Only Half of programming is coding. The other 90% is debugging.

-- T-shirt wisdom

[+13] [2009-10-25 08:19:05] orip

Now I'm a pretty lazy person and am prepared to work quite hard in order to avoid work.

Martin Fowler, "Refactoring", page 90

[+13] [2009-03-13 05:19:23] John Fouhy

"What I cannot build, I do not understand." – Richard Feynman

(1) thats ... simply true - Chris
Too, "what you cannot understand, you cannot build". - Paul Nathan
"What you can build, you can't always understand" - CodeFusionMobile
[+13] [2008-12-06 07:55:50] Mindaugas Mozūras

First, solve the problem. Then, write the code.

-- John Johnson

this is really great. - amr osama
[+13] [2009-01-05 22:02:44] Bob Fanger

“The Linux philosophy is 'Laugh in the face of danger'. Oops. Wrong One. 'Do it yourself'. Yes, that's it.”

-- Linus Torvalds

[+13] [2009-01-28 00:36:27] community_owned

Artificial Intelligence is no match for natural stupidity.

Unknown author

[+12] [2008-11-24 17:43:23] Prashanth Babu

Technology is dominated by two types of people:

[+12] [2009-04-16 15:50:52] e-holder

The more bizarre the behavior, the more stupid the mistake.

-Ed's Law of Debugging

(1) I coined this phrase while debugging my own code in my learning years. It just always seems to hold. - e-holder
[+12] [2009-05-28 13:47:12] lispmachine

There are no significant bugs in our released software that any significant number of users want fixed.

-- Bill Gates

[+12] [2009-06-13 16:01:07] David Spillett

One that is relevant to the way I'm often forced to work:

Any sufficiently successful rigged demo is indistinguishable from advanced technology.

(to paraphrase A C Clarke)

(1) Exact duplicate - Vebjorn Ljosa
[+12] [2009-10-24 19:59:17] anishMarokey

i like the Quotes


What I hear, I forget. What I see, I remember. What I do, I understand. - Confucius


Any fool can write code that a computer can understand... But only good programmers write code that humans can understand. -- Martin Fowler

I learned that as "but only gurus ...". - ChrisW
[+12] [2009-10-09 14:07:56] Chintan Patel

A very inspiring note.

Apple's Welcome Kit for new hires has this written on the bottom of the box:

There's work and there's your life's work.

The kind of work that has your fingerprints all over it. The kind of work that you'd never compromise on. That you'd sacrifice a weekend for. You can do that kind of work at Apple. People don't come here to play it safe. They come here to swim in the deep end.

They want their work to add up to something.

Something big. Something that couldn't happen anywhere else.

Welcome to Apple.

Wow.....I mean I'm not a huge fan of apple all the time, but that's something I wish more companies were built upon, imagine where we would be.... - onaclov2000
[+12] [2009-07-26 15:39:16] xcramps

"Yes, sometimes Perl looks like line noise to the uninitiated, but to the seasoned Perl programmer, it looks like checksummed line noise with a mission in life."

-Randal Shwartz

[+12] [2008-10-02 21:44:15] Dan Hewett

My other car is a cdr

[+12] [2008-10-04 17:17:42] Ricardo Cabral

From my personal compilation [1]:

“New technologies aren’t adopted because they are great, new, and disruptive; they are adopted only if the user’s crisis solved by the technology is greater than the perceived pain of adoption.”

Any problem in computer science can be solved with another layer of indirection. But that usually will create another problem. - David Wheeler (1927 - 2004)

"Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live" - Martin Golding

In my experience, one of the most significant problems in software development is assuming. If you assume a method will passed the right parameter value, the method will fail. – Paul M. Duvall

Programming languages are like girlfriends: The new one is better because you are better. – Derek Sivers

The sooner we start coding fewer frameworks and more programs the sooner we’ll become better programmers. – Warped Java Guy Elementary Java Solutions

Starting a startup is hard, but having a 9 to 5 job is hard too, and in some ways a worse kind of hard. – Paul Graham The Future of Web Startups

In essence, let the market design the product. – Paul Graham The Future of Web Startups

A startup now can be just a pair of 22 year old guys. A company like that can move much more easily than one with 10 people, half of whom have kids. – Paul Graham The Future of Web Startups

Startups almost never get it right the first time. Much more commonly you launch something, and no one cares. Don’t assume when this happens that you’ve failed. That’s normal for startups. But don’t sit around doing nothing. Iterate. – Paul Graham How Not to Die

The key to performance is elegance, not battalions of special cases. – Jon Bentley and Doug McIlroy

You’ll spend far more time babysitting old technologies than implementing new ones. – Jason Hiner IT Dirty Secrets

To Iterate is Human, to Recurse, Divine. – James O. Coplien

No one hates software more than software developers. – Jeff Atwood Hanselminutes Podcast 74

I was a C++ programmer before I started designing Ruby. I programmed in C++ exclusively for two or three years. And after two years of C++ programming, it still surprised me. – Matz The Philosophy of Ruby

Good architecture is necessary to give programs enough structure to be able to grow large without collapsing into a puddle of confusion. – Douglas Crockford The Elements of JavaScript Style

Programming is difficult. At its core, it is about managing complexity. Computer programs are the most complex things that humans make. Quality is illusive and elusive. – Douglas Crockford The Elements of JavaScript Style

Code reuse is the Holy Grail of Software Engineering. – Douglas Crockford The Elements of JavaScript Style

The structure of software systems tend to reflect the structure of the organization that produce them. – Douglas Crockford The Elements of JavaScript Style

The definition of Hell is working with dates in Java, JDBC, and Oracle. Every single one of them screw it up. – Dick Wall CommunityOne 2007: Lunch with the Java Posse

I went to school to learn how to program software applications, which inevitably have bug defects. There was no course at my university on testing, debugging, profiling, or optimization. These things you have to learn on your own, usually in a tight deadline. – Juixe TechKnow

To most Java developers, Ruby/Rails is like a mistress. Ruby/Rails is young, new, and exciting; but eventually we go back to old faithful, dependable, and employable Java with some new tricks and idioms and we are the better programmer for it. – Juixe TechKnow

You might as well pay your customers 50K because they are just your QA. – Juixe TechKnow


+1 for the quote on dates. - Jonathan Leffler
(2) Yeah, java.util.Date should be buried. No -- burned, dissolved in acid and ejected into outer space. - quant_dev
[+12] [2008-09-12 13:33:53] HigherAbstraction

"Computer Science is no more about computers than Astronomy is about telescopes." - E. Dijkstra

(3) duplicate of another answer with way-higher upvotes - Shachar
[+12] [2008-09-14 14:23:48] Chris Upchurch

Eric Sink’s Axiom of Software Development

You can't eliminate problems, but you can make trades to get problems that you prefer over the ones you have now.

[+12] [2009-12-13 18:30:37] ttvd

Manually managing blocks of memory in C is like juggling bars of soap in a prison shower: It's all fun and games until you forget about one of them.

Not sure who's the author, saw it on irc.

[+12] [2009-10-30 10:30:41] Mich Ravera

Ravera's observation on premature optimization: "If it doesn't work, it doesn't matter how fast it doesn't work"

Ravera's First Law of System Administration: "Any set of procedures, no matter how well intentioned or useful, that are too difficult to follow, will be circumvented."

You can have it cheap, fast, or right -- pick any two.

If you make it a constant today, you will have to make it a variable in a couple of weeks. If, however, you think that you need to look it up in a table somewhere, it will become a univeral constant that could have been completely factored out of your code, not just hardcoded.

i love the premature optimisation one - Martin DeMello
Post the premature optimization one by itself, so we can vote it up on its own merits. - Kyralessa
[+12] [2009-11-23 19:26:10] Juan Manuel

Deleted code is debugged code.

Jeff Sickel

[+11] [2009-11-21 18:13:14] bob quinn

Better is the enemy of good. ("le mieux est l'ennemi du bien")


The notion is not to wait until something is perfect, when 'good enough' will do. Its always a struggle to make that judgement, since nothing is ever "done."

I despise this quote. - Matt Davis
(1) Why do you despise this quote? - Kyralessa
[+11] [2009-11-14 14:55:58] Mohit Jain

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.

This one is by Rick Cook. +1 - Moayad Mardini
(1) Or rather, idiocy becomes more and more apparent as we approach the limits on what a human mind can hold whilst modelling a system. - Nick Wiggill
[+11] [2009-11-17 19:10:35] Ondrej Slinták

UNIX is simple. It just takes a genius to understand it's simplicity.

-- Dennis Ritchie

[+11] [2009-12-16 07:43:17] NAVEED
"Keyboard not found. Press < F1 > to RESUME."

source unknown

That'd be almost every BIOS out there. Just plug in the keyboard and press F1. ;) - Macke
(2) Then message should be: "Keyboard not found. Press < F1 > to RESUME. Don't forget to plug keyboard first." - NAVEED
[+11] [2009-12-11 22:30:33] fuenfundachtzig

"Code -- a set of symbols whose primary purpose is to restrict comprehension."

-- Webster's 3rd International Dictionary

[+11] [2008-09-13 15:28:43] Nathan Long

Not directly a programming quote, but I saw it on Slashdot and I think it applies:

"Eschew obfuscation."

Is it flavoursome? - Remou
Not being a native speaker, is "Eschew" a word very few native speakers know the meaning of? - Thorbjørn Ravn Andersen
@Thorbjørn - That's correct. :) - Nathan Long
[+11] [2008-09-16 00:08:53] Harold Bamford

I wish I could attribute this, but it is just something I heard 30 years ago and it still seems applicable:

All programs have at least one bug remaining and can be optimized by one byte. Thus, by mathematical induction, all programs can be reduced to one byte. And it won't work.

[+11] [2008-10-01 11:33:36] philippe

The sooner you get behind in your work, the more time you have to catch up.

No idea of the source.

[+11] [2008-09-29 08:11:32] Hamish Smith

It’s hard to read through a book on the principles of magic without glancing at the cover periodically to make sure it isn’t a book on software design.

Bruce Tognazzini

Having read both, I can agree. - WolfmanDragon
Anybody read the Wizard's Bane series of novels by Rick Cook? It's based on that principle. I've only read the first two books so far, but they were highly entertaining. - RobH
[+11] [2008-10-22 18:09:17] jamesh

It is easier to optimize correct code than to correct optimized code.

Bill Harlan [1]


[+11] [2008-10-19 03:07:35] RazMaTaz

Java is like a variant of the game of Tetris in which none of the pieces can fill gaps created by the other pieces, so all you can do is pile them up endlessly.

-- Steve Yegge (2007, Codes Worst Enemy)

[+10] [2009-02-02 04:06:25] Bernard Dy

"Software is hard."

Donald Knuth

[+10] [2009-02-26 11:21:41] Daniel Magnusson

Requirements are like water. They're easier to build on when they're frozen.


[+10] [2009-07-22 09:42:59] Martin Chiteri

This is related to project management / Software design. I hope it has not been submitted.

"Designing software in a team is like writing poetry in a committee meeting." [ Joel Spolsky ]

[+10] [2009-07-27 11:46:33] KitsuneYMG

Education is the process of learning more and more about less and less until one knows everything about nothing and is entitled to call oneself 'Doctor'

[+10] [2009-08-21 15:43:04] Juan Manuel

“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

[+10] [2009-07-04 13:29:15] Anon

Java is to JavaScript what Tea is to Teabagging.

Pfft, almost lost my coffee over that :) - Mark Pim
Glad you liked it ;-) I came up with it, but was inspired by, of course, the Car->Carpet one. I figured there had to be two other such terms with more of a punchline effect. - Anon
That's fantastic. - chris
Java is to javascript what fun is to funeral. - Brandon_R
[+10] [2009-09-23 16:17:46] Rachel

You have to "solve" the problem once in order to clearly define it and then solve it again to create a solution that works.

[+10] [2009-10-18 19:04:29] bludger

A logician trying to explain logic to a programmer is like a cat trying to explain to a fish what it's like to get wet." - unknown

That's actually pretty well put. Very _ana_logical. - Tor Valamo
[+10] [2009-10-10 14:04:07] Macke

"Documentation is like sex. When it's good, it's fantastic. When it's bad, it's still better than nothing." - Unknown

[+10] [2009-06-02 08:12:29] Pratik

Three things should never be seen in the process of being created: laws, sausage, and software. -- Source unknown to me

I have found that the reason a lot of people are interested in artificial intelligence is the same reason a lot of people are interested in artificial limbs: they are missing one. -- David Parnas

(1) "Laws are like sausages, it is better not to see them being made." attributed to Otto von Bismarck, but apparently incorrectly ( - Jim Ferrans
[+10] [2008-09-15 22:49:31] Ryan Delucchi

On the 7th day ... God began debugging.

are you sure? i think he run away from debugging otherwise a week would have at least 14 days ;-) - Chris
We've been trying to debug that ??? thing ever since. Moral: design before you implement. - EFraim
[+10] [2008-09-15 02:04:28] Alan

Here are several I like that I didn't see above:

Get it right. Then get it fast.

Sentiment of Steve McConnell, whose book Code Compelte is one of the best out there on the topic of software development

If we can't fix it, then it ain't broke.

Debuggers motto, noted by John Bently in Programming Perls

Every truth passes through three stages before it is recognized. In the first, it is ridiculed, in the second it is opposed, in the third it is regarded as self-evident.

Arthur Schopenhauer 19th-century philosopher

Worry is a dividend paid to disaster before it is due.

Ian Fleming

Spare the integrity, spoil the data.

Mike Britten 20th-century programmer

Those who are enamored of practice without science are like a pilot who goes into a ship without rudder or compass and never has any certainty where he is going. Practice should always be based upon a sound knowledge of theory.

Leonardo da Vinci

The most successful software applications are never completed – they evolve with the enterprises they serve.

Daniel D. Corkill

Regarding "If we can't fix it, then it ain't broke"... Or, we need more up to date tools. (I say this, because the combination of Vista and the old installer tech that we've been using up to now created some bugs that can only be fixed by implementing our new MSI-based installers.) - RobH
[+10] [2008-09-12 20:59:56] Anthony

Long ago, I put some quotes on the subject of "Good Programmers" over here [1]

My Absolute best: "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 W. Kernighan

"You know you've achieved perfection in design, not when you have nothing more to add, but when you have nothing more to take away." - Antoine de Saint-Exupéry in Wind, Sand and Stars


(1) Both are duplicates. - John Gietzen
[+10] [2008-09-12 14:30:40] tephlon

"Fight code entropy." -- John Carmack

[+10] [2009-12-14 10:23:33] uriel

I keep a very long collection of my favorite programming quotes [1].

But I think that my favorite that has not been posted yet is:

"The cheapest, fastest, and most reliable components are those that aren't there." — Gordon Bell


[+10] [2009-12-15 20:11:30] lstanczyk

"Go away or I will replace you with a very small shell script!"

[+10] [2009-11-17 19:21:36] Cylon Cat

"Any sufficiently advanced bug is indistinguishable from a feature." - Carl Franklin

[+9] [2008-09-14 14:30:12] Brian G

"Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live." (Damian Conway from the book Perl Best Practices).

Damian Conway or Rick Osborne?… - JB.
...or John F. Woods? - JB.
And if it's you who ends up maintaining the code, then the assumption becomes at least half true. :-) - RobH
[+9] [2008-09-23 09:18:37] Chris OC

Good programmers learn more from "That's not what I expected!" than from getting it right the first time.

(2) Sounds like variant of the quote from Isaac Asimov --The most exciting phrase to hear in science, the one that heralds new discoveries, is not 'Eureka!' (I found it!) but 'That's funny ...'-- - epatel
[+9] [2008-10-10 08:31:04] xtofl

I don't know where it came from, but

2B | ~2B, that's FF

Actually, that's 1, or true, depending on language. What you're looking for is: 2B | !2B. (You're still missing 0x's, but I can forgive this.) (I've done my pedantism for the day!) - Thanatos
(1) You're very right. In this case, it's about the tiny bits :) - xtofl
[+9] [2008-09-17 14:36:02] MikeCroucher

Computers are useless. They can only give you answers.

-Pablo Picasso

For every complex problem there is an answer that is clear, simple, and wrong.

-H L Mencken

(4) And Picasso hadn't even read the Hitchhiker's Guide to the Galaxy! - jan.vdbergh
[+9] [2008-09-17 14:36:13] Isak Savo

"When you want to do something differently from the rest of the world, it's a good idea to look into whether the rest of the world knows something you don't."

Read it in a forum somewhere so I don't know who coined it. But it's good!

[+9] [2009-06-08 15:21:27] David

Once in a while, there comes along something really new and truly innovative. Of all the machines I've seen, only Macintosh embodies that standard.

Bill Gates

(2) This is great, but I'd like to see source. - Sneakyness
(4) How qbout this?… - David
[+9] [2009-04-08 13:10:49] Jon Winstanley

Not really programming, but it is definitely relevant:

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

(2) This is a duplicate. - John Gietzen
Oh, i +1'd for lol, but removed if it's a dupe - Ian Boyd
[+9] [2009-02-28 09:16:27] Esko Luontola

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

Bill Gates [1]


(13) Third time this has been posted... - John Gietzen
[+9] [2009-10-16 02:09:01] Georg Fritzsche

If you require information, do not free memory containing the information.
... MSDN [1]


[+9] [2009-08-15 17:48:42] Gordon Bell

"Part of the inhumanity of the computer is that, once it is competently programmed and working smoothly, it is completely honest."

--Isaac Asimov

[+9] [2009-02-18 12:39:11] dincer80

"Simplicity is the ultimate sophistication." -- Leonardo da Vinci

I'm sure he didn't say it from a programmer's aspect but it definitely fits in..

[+9] [2009-02-01 22:04:19] community_owned

Saying Java is better because of multi platforms is like saying anal sex is better because it works on all genders.

-- Origin unknown by poster

(1) zomg lmfao !!!1! - Eduardo León
(1) This has already been said (previous page). - cletus
[+9] [2008-12-22 08:04:42] nicerobot

` The single back-quote

I think the character's called a grave accent. - Phantom Watson
Too bad it's not legal syntax in any of the languages I use... - drhorrible
@drhorrible I guess you don't program in Bash - nicerobot
unmatched backtick is a syntax error in bash - Marius Gedminas
@marius-gedminas It is not a syntax error! It opens a line continuation. Everything within the opening and closing grave accent is evaluated by the shell which can include multiple lines. - nicerobot
[+9] [2008-11-21 10:29:35] Mohit Nanda

To iterate is human. To recurse divine! :) Really divine! ;) - bludger
[+8] [2008-11-04 17:30:25] community_owned

corollary to Clarke's law:

Any technology distinguishable from magic is insufficiently advanced

This is a duplicate. - John Gietzen
[+8] [2009-02-02 07:05:31] community_owned

Anything that can go wrong will go wrong, anything that can't go wrong will go wrong anyway

[+8] [2009-02-25 21:24:15] Hkkathome

"Programs must be written for people to read, and only incidentally for machines to execute." -Abelson/Sussman

"Any fool can write code that a computer can understand. Good programmers write code that humans can understand." -Martin Fowler

[+8] [2009-02-24 09:45:07] Krzysztof Koźmic

"Code is never finished, only abandoned."

I don't know who said it first but it's based on Leonadro Da Vinci's quote:

"Art is never finished, only abandoned."

[+8] [2009-10-24 20:03:20] anishMarokey

If debugging is the process of removing software bugs, then programming must be the process of putting them in” – Edsger Dijkstra

[+8] [2009-10-14 11:46:03] Suraj Chandran

A programmer who can get a blonde is not a programmer enough!

--Suraj Chandran

[+8] [2009-04-16 05:49:38] Michael Buen

Don't code today what you can't debug tomorrow

[+8] [2009-06-02 08:23:01] Jon Hess

This one by Jamie Zawinski always made me laugh

Using these toolkits is like trying to make a bookshelf out of mashed potatoes

[+8] [2009-06-02 07:00:15] 24x7Programmer

I don't know from where I got this but I like this one:

Software is like entropy. It is difficult to grasp, weighs nothing, and obeys the second law of thermodynamics; i.e. it always increases.

[+8] [2009-05-06 05:18:28] praavDa

"The difference between theory and practice is larger in practice than it is in theory".

Actually, the original goes: "In theory, the difference between theory and practice is much smaller, then it is in practice." - ldigas
+1 nevertheless :) - ldigas
The version I've heard goes "in theory there is no difference between practice and theory, but in practice there is". - Isak Savo
[+8] [2009-06-17 18:23:33] THEn

Don't fix it if it ain't broke presupposes that you can't improve something that works reasonably well already. If the world's inventors had believed this, we'd still be driving Model A Fords and using outhouses. (H. W. Kenton)

thanks i hate that saying - LegendLength
[+8] [2008-10-15 17:33:16] Kevin Little

"We should forget about small efficiencies, say about 97% of the time: premature optimization is the root of all evil."
--Donald Knuth

Actually, it's not Knuth's. It's C.A.R. Hoare's - even Knuth admitted it in some of his books or somewhere. - ldigas
@ldigas: Knuth calls it Hoare's dictum in The Errors of TeX, but Hoare denies coming up with it, and the earliest citation appears to be in Knuth. See… - Simon Nickerson
[+8] [2008-09-26 21:06:21] Zee JollyRoger

"Inside every complex program is a simple program trying to get out." - My Mentor

[+8] [2008-10-01 14:56:18] VVS

This one has to be on the list. Credits go to Darren Thomas wo posted it in the comments here [1].

There are 10 types of people. Those who can read ternary, those who can't and those who mistake it for binary.


I used to be in the third group. Never again! - R. Martinho Fernandes
(1) This is a duplicate. - John Gietzen
@John: Can you post the link? I can't find a duplicate. - VVS
[+8] [2008-09-12 13:00:22] Brian Stewart

Not sure of the origin but:

When you hear hoof beats, think horses, not zebras.

An interesting (but short) wikipedia article suggests it was by Dr. Theodore Woodward, a former professor at the University of Maryland: - Adrian Mouat
I have attributed it to : Hunt and Thomas, in The Pragmatic Programmer - TheZenker
... unless you're a zebra ;) - MrZebra
(4) ... unless you live in Africa. - Software Monkey
it was also mentioned once on House MD talking about diagnostic medicine - advs89
[+8] [2008-09-12 17:06:30] lurks

"Programs should be written to be read by humans, and to be accidentally executed by machines".

Rigth now I can't remember the author..

(3) It's "Programs should be written for people to read, and only incidentally for machines to execute" by Alan Perlis in the preface to 'Structure and Interpretation of Computer Programs' - Glenn Slaven
(2) This is a duplicate. - John Gietzen
[+8] [2009-11-21 00:49:37] bob quinn

If you don't have time to fix it now, what on Earth makes you think you will have time to fix it later?

-- Bob Mannes (IT Operations Mgr, in response to programmers trying to put programs with known deficiencies into production in order to meet their project deadlines/milestones)

[+8] [2009-10-31 06:07:55] lemotdit


while (true) { 
    return null;

[+8] [2009-12-10 08:42:02] Varuna

How does a web design go straight to hell : [1]


[+8] [2009-12-02 22:08:00] rhettg

Whenever someone thinks that they can replace SSL/SSH with something much better that they designed this morning over coffee, their computer speakers should generate some sort of penis-shaped sound wave and plunge it repeatedly into their skulls until they achieve enlightenment.

Peter Gutmann [1]


[+7] [2009-12-10 05:23:30] Florian

Users are a terrible thing. Systems would be infinitely more stable without them.

From the book Release It! by Michael T. Nygard.

[+7] [2009-11-14 14:24:34] rsp
"If all you have is a hammer, everything looks like a nail"

"have" can be swapped for "know"; too many developers just repeat what they did last time without checking that it is the best solution to the new problem.

(1) "If all you have is a hammer, everything looks like a thumb" - Windows programmer
[+7] [2009-11-14 14:47:59] michael

"Never trust a computer you can’t throw out a window." - Steve Wozniak

(1) That's why I don't buy Macs! I can't afford to afford to throw them out the window! - Nick Wiggill
[+7] [2008-09-14 16:15:23] Farinha

Real programmers don't need comments, the code is obvious!

(11) That quote has proven to be harmful when bad programmers (that don't realize it) use it as an argument. - Jj.
(2) Document my code? Why do you think they call it CODE? - user389823
[+7] [2008-09-13 13:39:06] Toni Ruža

"Our Program who art in Memory, Hello by Thy Name. Thy Operating System come, Thy Commands be done, at the Printer as it is on the Screen. Give us this day of our daily Data, and forgive us our I/O Errors as we forgive those whose Logic Circuits are faulty. Lead us not into frustration, and deliver us from Power Surges. For Thine is the Algorithm, The Application and the Solution, looping for ever and ever.



"If it doesn't work, change the documentation."


Q: Is there a UNIX FORTRAN optomizer? A: Yeah, "rm *.f"


"The reason that God was able to create the world in seven days is that he didn't have to worry about the existing configuration"

[+7] [2008-09-13 04:25:04] Soumitra

"on a clear disk you can seek forever"

[+7] [2008-09-15 21:34:04] shoosh

Managing programmers is like herding cats.

[+7] [2008-09-17 14:28:11] Adam Lerman

If you can build it, your users can break it.

(2) AMEN! That is SO true! - eidylon
[+7] [2008-09-18 23:46:40] givanse

"I would change the world, but I don't have the source code" a programmer

This is a duplicate. - John Gietzen
[+7] [2008-09-18 02:52:18] Steve Wranovsky

“C is quirky, flawed and an enormous success.” - Dennis Ritchie

[+7] [2008-09-22 11:58:38] Midhat

Hardware is the part of a system you can kick. Software is the one you can only curse at

[+7] [2009-04-06 13:13:52] Johnny Blaze

"A Programmer is a device for turning coffee into code"

which is a variation of a quote from Paul Erdos

"A mathematician is a device for turning coffee into theorems."

[+7] [2009-03-08 23:43:56] Adam

In theory this should work.

--anonymous developer

[+7] [2009-10-18 19:13:24] bludger

"Good software, like wine, takes time." - Joel Spolsky

[+7] [2009-10-24 20:32:41] Carlos

Few of the quotes from my collection (that I didn't see in the earlier answers):

Artificial Intelligence is no match for natural stupidity.


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

The use of COBOL cripples the mind; its teaching should, therefore, be regarded as a criminal offence.

-Edsger Dijkstra

APL is a mistake, carried through to perfection. It is the language of the future for the programming techniques of the past: it creates a new generation of coding bums.

-Edsger Dijkstra

If you give someone a program, you will frustrate them for a day; if you teach them how to program, you will frustrate them for a lifetime.


[+7] [2009-07-24 05:02:03] ojrac

WOMBAT: Works On My Box All the Time. -- Most of us, at some point in our careers

[+7] [2009-06-16 19:33:28] bill

The best things are simple, but finding these simple things is not simple.

Do you know who said that? Great quote! :) - epatel
To my knowledge, it is my own quote. I was always irritated to see people thinking first about komplex things, before looking at simple ideas. - bill
[+7] [2009-01-16 22:55:36] RobH

I don't know who said it originally, but

There's no such thing as temporary code.

[+7] [2008-10-31 11:48:36] David Pike

"When I am working on a problem I never think about beauty. I think only how to solve the problem. But when I have finished, if the solution is not beautiful, I know it is wrong." - R. Buckminster Fuller

Yes, but bucky was an architect, talking about architecture (that's buildings people). The opposite is true in programming. If I see a solution that's beautiful it most likely misses some edge cases and has insufficient error handling. - U62
[+7] [2008-10-20 05:48:54] Dov Wasserman

My best effort:

"Software is either testable or detestable."

[+7] [2008-11-18 09:43:18] Unsliced

It's not specifically about programming, but it matches the way I often find myself debugging:

The definition of insanity is doing the same thing over and over and expecting a different result.

Attributed variously to, inter alia, Ben Franklin and Albert Einstein.

What about stone masons? They hit the same place over and over and over and then. Boom the stone breaks. I've always found this quote ill informed. - baash05
I always wondered how this applies to flipping coins. - Marius Gedminas
[+7] [2008-10-22 17:54:33] George

“If builders built buildings the way programmers write programs, then the first woodpecker that came along would destroy civilization.”

Weinberg’s Second Law

(2) This is a duplicate. - John Gietzen
[+7] [2008-11-21 19:25:51] JeffK

"Are you quite sure that all those bells and whistles, all those wonderful facilities of your so called powerful programming languages, belong to the solution set rather than the problem set?"

Edsger W. Dijkstra

[+7] [2008-11-24 18:30:17] bradheintz

It was originally about warfare, but is no less true of building software:

“I have always found that plans are useless, but planning is indispensable.” - Dwight D. Eisenhower

[+7] [2008-12-06 11:47:49] community_owned

I will, in fact, claim that the difference between a bad programmer and a good one is whether he considers his code or his data structures more important. Bad programmers worry about the code. Good programmers worry about data structures and their relationships.

--Linus Torvalds

[+6] [2008-11-24 18:57:00] Draemon

Friend: "The problem with this code is it has far too many levels of misdirection"

Me: "don't you mean indirection?"

Friend: "I meant what I said"

I won't start a flame war by telling you which 3rd party library he was talking about.

(1) enterprise library? - Max Schmeling
@Max: It could be many things. - Colin Mackay
[+6] [2008-11-15 01:52:16] Robert Gamble

If the automobile had followed the same development cycle as the computer, a Rolls-Royce would today cost $100, get a million miles per gallon, and explode once a year, killing everyone inside.

-- Robert X. Cringely

[+6] [2009-07-19 04:57:21] Steven Oxley

Matthew Leffler:

You want a dot operator in PHP?

eval(str_replace('.', '->', $code_with_dot_operator))

[+6] [2009-07-24 19:33:00] codedude

“In a world without walls and fences, who needs Windows and Gates?”

(3) Shareholders. . - Omar
[+6] [2009-07-08 15:37:58] Daff

"It's interface, not in your face"

[ Kai Krause ]

Read that one and it gave me a laugh and added it here since I couldn't find it.

[+6] [2009-08-12 16:26:04] community_owned

There's a nice collection of quotes here:

Programming quotes [1]


[+6] [2009-10-20 17:36:48] Ether

"Fixing Unix is easier than living with NT." - Jonathan Gilpin

[+6] [2009-10-21 15:23:18] Guy van den Berg

No code is faster than no code. -- merb motto

[+6] [2009-10-30 09:53:47] lttlrck

Attributed to anybody ready anybody else's code.

[+6] [2009-10-16 09:37:13] Paul McGuire

I finally found a definition for "middleware". "Middleware" is the software nobody wants to pay for. - Chris Stone, President of the Object Management Group

Lamenting the difficulty of cost-justifying infrastructure software like CORBA.

[+6] [2009-03-02 20:42:32] BoltBait

"code that ALMOST works looks NOTHING like the code that ACTUALLY works."

[+6] [2009-04-26 07:06:11] Sohail Anwar

Good code is its own best documentation. As you're about to add a comment, ask yourself, 'How can I improve the code so that this comment isn't needed?

Yes, but if you have to integrate with a third party piece of madness comments are often required because otherwise the person that comes along after to maintain the code will think WTF! - Colin Mackay
[+6] [2009-04-26 07:10:09] Sohail Anwar

UNIX is simple. But It just needs a genius to understand its simplicity. --Dennis Ritchie

[+6] [2009-06-13 16:58:08] Joe White

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 A. Jackson [1]

I must not prematurely optimize. Premature optimization is the mind-killer. Premature optimization is the little-death that brings total obliteration. I will face my desire to prematurely optimize. I will permit it to pass over me and through me. And when it has gone past I will turn the inner eye to see its path. Where the desire has gone there will be nothing. Only I will remain.

-- Samuel Tesla [2], with apologies to Frank Herbert [3]


[+6] [2008-09-19 19:20:03] Gustavo Carreno

Flame bait propagated by Slackware lovers:

If you know Red Hat you know Red Hat, If you know Slackware you know Linux.

[+6] [2008-09-16 23:29:23] Sleep Deprivation Ninja

If people aren't buying your obscure gadget, make it run on USB. Programmers will go wild.

-- Sleep Deprivation Ninja :)

If you lie to the compiler, it will get its revenge.

-- Henry Spencere

The primary duty of an exception handler is to get the error out of the lap of the programmer and into the surprised face of the user. Provided you keep this cardinal rule in mind, you can't go far wrong.

-- Verity Stob

Good code is its own best documentation. As you're about to add a comment, ask yourself, 'How can I improve the code so that this comment isn't needed?' Improve the code and then document it to make it even clearer.

-- Steve McConnell Code Complete

Not originally intended for programming but fits:

We are tied down to a language which makes up in obscurity what it lacks in style.

-- Tom Stoppard

[+6] [2008-09-17 13:59:22] community_owned

"A fool with a tool is still a fool." (I don't know who originated it, but I believe it is true)

[+6] [2008-09-25 21:00:20] Slapout

Never trust a programer who can spel.

[+6] [2008-09-25 21:02:17] MattC

"Never attribute to malice that which can be adequately explained by stupidity" - Hanlon's Razor.

You'd think it wouldn't be applicable to programming until you start thinking about endless requirements changes from clients who don't know what they want, etc...

[+6] [2008-09-13 15:27:43] community_owned

I can't find the exact quote, but Coco Chanel once said something along these lines:

Once you've dressed and before you leave the house, look in the mirror and take at least one thing off.

Yeah, it's Coco Chanel but it applies!

[+6] [2008-09-12 11:14:56] bedbuffer

To Err is human, to Debug is Divine...

[+6] [2009-12-10 08:38:25] Varuna

Half-knowledge is dangerous

Famous quote that applies to everything!

[+6] [2009-12-09 11:55:58] NAVEED
I am not an engineer, I am a software engineer.


[+6] [2009-12-17 02:23:47] Varuna

// TODO: or die

Helpful todo comment

[+5] [2009-12-13 18:43:31] Sergey

Programmers do not die. They just gosub without return.

Unknown author.

[+5] [2009-12-16 18:31:33] Paul McGuire

You do not want to get a NotImplementedException when calling self.planeContainer.lowerLandingGear().

Bertrand Meyer, explaining the value of defining preconditions in Eiffel, over throwing runtime NotImplemented exceptions.

(2) Precise quote of Bertrand (not Bertand) Meyer: "After all, run time is a little late to find out whether you have a landing gear." - Andrew Grimm
Thanks, I was reconstructing this purely from memory. I think this was from a talk at OOPSLA, but I don't recall which one. - Paul McGuire
[+5] [2009-11-27 18:06:01] CoderTao

Occam's Taser: The simplest solution is often the most painful.

Don't remember where I heard it, but it describes my life well.

[+5] [2009-12-01 02:51:43] Varuna

One must learn from design patterns, not the design patterns.

[+5] [2009-12-02 02:35:54] Varuna

The function name should define everything the function does.

[+5] [2009-11-15 14:30:30] community_owned

"Every revolutionary idea seems to evoke three stages of reaction: One, it's completely impossible. Two, it's possible, but it's not worth doing. Three, I said it was a good idea all along." - Arthur C. Clarke

[+5] [2009-11-04 12:07:37] Julio

One of my collegues had a great quote in french: "Tout nouveau développement contient au moins un bug. Toute correction de bug est un nouveau développement."

Which translates to "Every new development contains at least one bug. Every bug correction is a new development"

Where I work it sadly happens to be true...

[+5] [2009-11-24 07:18:56] Lukas Šalkauskas

One of my friends likes this very much:

Open source software only comes in one edition: awesome.

(6) I prefer: "Open source software only comes in one edition: unusable". - DisgruntledGoat
(1) funny, but not true. - Lukas Šalkauskas
Have you seen open office? - Philip Smith
[+5] [2009-11-23 21:24:52] eidylon

They really need some way to search through the answers for questions like this! LOL
But here's my contribution...

"Make something fool-proof and someone will make a better fool." !!!

[+5] [2009-11-23 04:02:29] Klosterf

Syntactic sugar causes cancer of the semicolon

[+5] [2009-11-23 04:38:32] beggs

We don't have time to do it right, but we have time to do it twice.

Engineering slogan in one of the start-ups I worked for. I think the CTO was the source of it (at least in our company)

Your CTO wasn't born yet when that fact was first observed. - Windows programmer
Down vote eh? C'est la vie. I don't actually like what the quote implies but I have come to understand that, despite the fact that most of the time the reasons behind this kind of mentality come down to poor sales staff, there are times when it's a valid statement. 'Shipping your product is a feature'. - beggs
When I read the quote, I couldn't tell if it was serious or sarcastic. - Andrew Grimm
[+5] [2008-09-12 16:49:18] Peter Bromberg

Two protons walked into a Black Hole.

[+5] [2008-09-13 09:34:26] Jacobbus

Applies to a lot, but also to software:

Never on schedule, always on time

[+5] [2008-09-15 20:22:12] community_owned

"Our software isn't released, it escapes leaving a bloody trail of testers behind it."

-- unknown author (only because I can't be bothered to look it up in google since the point here is to display the entertaining quote, and not in giving any kickback to the original author, because media in digital form are not realistically copyrightable.)

[+5] [2008-09-14 05:59:48] David Crow

Jeff Atwood [1]:

The real money isn't in the software. It's in the service you build with that software.


[+5] [2008-09-15 13:16:18] realsugar

Recently my colleague said

"When you write a good code, you take it from the parallel ideal universe, thereby coming nearer to it."

Not fun but very philosophical.

[+5] [2008-09-15 13:58:52] community_owned

"Never change a running system." - widely spread. Well my interpretation is: "Never run a changing system."

[+5] [2008-09-15 13:59:51] Vinko Vrsalovic

Python: Programming the way Guido indented it ( Digital Creations T-shirt slogan at IPC9 [1])


(1) that link gives a 404 - Bryan Oakley
[+5] [2008-09-23 16:16:55] Pini Reznik

“The limits of my language mean the limits of my world”

Ludwig Wittgenstein [1]


[+5] [2008-10-02 00:49:05] andyp

"Compatibility means deliberately repeating other people's mistakes."

and the often incompletely quoted...

"Any problem in computer science can be solved with another layer of indirection...but that usually will create another problem."

David Wheeler

[+5] [2008-09-29 08:09:01] Hamish Smith

Perilous to us all are the devices of an art deeper than that which we possess ourselves

J.R.R. Tolkien

[+5] [2008-09-18 19:15:59] Henrik Warne

[The common definition of estimate is] "An estimate is the most optimistic prediction that has a non-zero probability of coming true" . . .

Accepting this definition leads irrevocably toward a method called what's-the-earliest- date-by-which-you-can't-prove-you-won't-be- finished estimating.

Tom DeMarco (1982)

[+5] [2008-09-16 19:54:49] Nighthawk

"Thou shalt not follow the NULL pointer, for chaos and madness await thee at its end."

--Henry Spencer

(1) But sending messages to NULL is OK, because what cannot exist will not respond. - Kendall Helmstetter Gelner
[+5] [2008-09-16 04:49:50] Stuart Helwig

If you don't have time to do something properly, you certainly don't have time to do it twice!

[+5] [2008-09-16 09:31:51] all2one

The manager's function is not to make people work, it is to make it possible for people to work. from "Peopleware: Productive Projects and Teams"

[+5] [2008-09-16 10:19:00] Jean-Pierre Rupp

All programmers are optimists

Frederick Brooks, The Mythical Man-Month

[+5] [2009-05-06 05:41:40] MikeJ

If your software breaks, do you get to keep both pieces?

+1 i lol'd . - Ian Boyd
[+5] [2009-04-19 23:22:45] Kim Rutherford

C++ is more of a rube-goldberg type thing full of high-voltages, large chain-driven gears, sharp edges, exploding widgets, and spots to get your fingers crushed. And because of it's complexity many (if not most) of it's users don't know how it works, and can't tell ahead of time what's going to cause them to loose an arm.

-- Grant Edwards

C: a language that combines all the elegance and power of assembly language with all the readability and maintainability of assembly language

-- Unknown

[+5] [2009-03-27 17:01:47] dewde

Selecting a project due date before the requirements are properly gathered is like selecting which corner you want to paint yourself into, while simultaneously negating the doorway as a viable option. - Chris Ames

[+5] [2009-04-14 22:49:01] digijock

Like a gas, software expands to fill its containing memory completely.

[+5] [2009-03-02 20:32:27] Maxim Veksler

Quoting here the zen of python

$ python
>>> import this

The Zen of Python, by Tim Peters

Brought to you as is, unedited:

Beautiful is better than ugly.

Explicit is better than implicit.

Simple is better than complex.

Complex is better than complicated.

Flat is better than nested.

Sparse is better than dense.

Readability counts.

Special cases aren't special enough to break the rules.

Although practicality beats purity.

Errors should never pass silently.

Unless explicitly silenced.

In the face of ambiguity, refuse the temptation to guess.

There should be one-- and preferably only one --obvious way to do it.

Although that way may not be obvious at first unless you're Dutch.

Now is better than never.

Although never is often better than right now.

If the implementation is hard to explain, it's a bad idea.

If the implementation is easy to explain, it may be a good idea.

Namespaces are one honking great idea -- let's do more of those!

[+5] [2009-10-15 07:53:57] Dilip

“Computers are useless. They can only give you answers.” (Pablo Picasso)

[+5] [2009-10-15 20:18:18] SketchBookGames

"Rob say 'Code Monkey very diligent, but his output stinks. His code not functional or elegant, what does code monkey think' _codeMonkey think 'Maybe manager Rob want to write gosh darn log-in page him self."

Jonathan Coulton - Code Monkey. (song)

"Aperture Science, we do what we must because we can. For the good of all of us, except the ones who are dead. But there's no sense crying over every mistake, you just keep on trying 'till you run out of cake."

Jonathan Coulton & GlaDOS - Still Alive (song)

[+5] [2009-09-25 14:13:10] Raj More

If you get it free, it is worthless. If you pay for it, is has value. If you build it yourself, it is priceless.

- Raj More

[+5] [2009-08-01 19:29:51] CaptainProton

When a professional race car driver races, his pulse gets lower and he relaxes.
When I code it is the same thing.

--Jun-ichiro Hagino

[+5] [2009-08-06 13:42:02] Darknight

It's difficult to express the sorrow of losing code that you spent hours on, simply because you forgot to save...

[+5] [2009-07-24 19:34:15] Michael McCarty

The quality goes in after the code goes out.

[+5] [2009-07-10 02:45:19] rprandi

Friend of mine: "Artificial Intelligence is a technic for making computers act like Paris Hilton."

[+5] [2008-11-15 01:33:05] Robert Gamble

C++ is to C as Lung Cancer is to Lung.

[+5] [2008-11-24 18:57:03] Mike Miller

H.L. Mencken:

For every problem, there is a solution that is simple, elegant, and wrong.

George Neville-Neil:

People who think, "Oh this is a one-off," need to be offed, or perhaps politely removed from the project.

Conway's Law:

Organizations which design systems are constrained to produce designs which are copies of the communication structures of these organizations.

Charles Babbage:

On two occasions, I have been asked [by members of Parliament], 'Pray, Mr. Babbage, if you put into the machine wrong figures, will the right answers come out?' I am not able to rightly apprehend the kind of confusion of ideas that could provoke such a question.

[+5] [2008-11-24 18:41:44] Peter Tate

Rule 1. You can't tell where a program is going to spend its time. Bottlenecks occur in surprising places, so don't try to second guess and put in a speed hack until you've proven that's where the bottleneck is.

Rule 2. Measure. Don't tune for speed until you've measured, and even then don't unless one part of the code overwhelms the rest.

Rule 3. Fancy algorithms are slow when n is small, and n is usually small. Fancy algorithms have big constants. Until you know that n is frequently going to be big, don't get fancy. (Even if n does get big, use Rule 2 first.)

Rule 4. Fancy algorithms are buggier than simple ones, and they're much harder to implement. Use simple algorithms as well as simple data structures.

Rule 5. Data dominates. If you've chosen the right data structures and organized things well, the algorithms will almost always be self-evident. Data structures, not algorithms, are central to programming.

Rule 6. There is no Rule 6.

--Rob Pike

[+5] [2008-12-05 16:34:09] Svante

From Paul Graham's "On Lisp":

An ideal world is left as an exercise to the reader.

[+5] [2008-12-18 10:28:02] tinyd

I like this one because, joking aside, it's often how things end up getting done. I don't know who said it but it stuck in my mind....

"Right. You lot start coding, I'll go and see what they want"

This is a duplicate. - John Gietzen
[+5] [2008-12-18 10:42:01] Dan Olson

Alan Perlis's Epigrams on Programming [1] has some great ones:

"If you have a procedure with 10 parameters, you probably missed some."

"It is easier to write an incorrect program than understand a correct one."

"You can measure a programmer's perspective by noting his attitude on the continuing vitality of FORTRAN."

"There are two ways to write error-free programs; only the third one works."

I love the guy because he was oppressively pessimistic about programming.


(1) Where did the fortran comment come from? - WolfmanDragon
[+5] [2009-01-19 05:28:41] Ria

Here's one from American Gods by Neil Gaiman:

...Tell him that language is a virus and that religion is an operating system and that prayers are just so much f*ng spam.

[+5] [2009-02-01 21:21:44] community_owned

What you’ve described, “The bottleneck in writing code isn’t in the writing of the code, it’s in understanding and conceptualising what needs to be done,” is common to all highly abstract programming languages. Writing Haskell, for example, involves an hour of meditation followed by the emission of a fold expression. - Jonathan Feinberg

The link to original is here [1]. You'll have to search down for it.


[+5] [2009-02-01 22:46:19] atc

"Complexity has nothing to do with intelligence, simplicity does." - Larry Bossidy.

[+5] [2009-01-27 11:47:17] Andrea Ambu

C is to programming as Latin is to literature

I had just had the idea and found a nice way to word it, I don't know if someone already told something like this :D

[+5] [2008-12-31 19:58:16] community_owned

Think of it this way: threads are like salt, not like pasta. You like salt, I like salt, we all like salt. But we eat more pasta.

-- Larry McVoy

from kernelnewbies fortune cookie

[+5] [2009-01-01 07:51:03] community_owned

Inside every small program is a large program struggling to get out. -- C.A.R. (Tony) Hoare

LOL - this one could apply to government programs too! :) - eidylon
[+5] [2009-01-01 09:00:58] featureBlend

I got two for you:

(1) Its not the size of the app but how you code it! (Rails Envy)

(2) A programmer never dies he just degrades gracefully ;-)

+1 for (2). - j_random_hacker
[+5] [2009-01-03 09:27:20] Ludwig Wensauer

All real programmers know C of course -- Jeff Atwood

I'm not sure if he is the original author of this quote, but I heared it in episode 23 of the stackoverflow podcast.

[+5] [2009-01-15 22:57:52] Michael Itzoe

Not strictly programming, but I find it often fits:

Good enough is neither.

-- Jim Spivey, though I don't know if he coined it

And speaking of fits, this one is surprisingly useful in many facets of life:

If it doesn't fit, make it fit.

[+5] [2009-01-16 06:29:27] Skittles

When a manager I had was put under pressure by a client to throw more developers at a project to try and get it in under time he said;

"No matter how many men a woman sleeps with, it's still going to take her 9 months to have a baby"

(2) This is from Fred Brooks' Mythical Man Month (ca. 1975). - Jim Ferrans
[+5] [2009-02-24 09:08:49] BubbaT

Late but I'll try. Jon Bentley had one column composed of many quotes, but one sticks in my mind. IIRC it was from 1976.

"Use four digits. A new millenium is coming."

[+5] [2009-02-27 08:50:15] freggel

Keep It Simple Stupid

KISS [1]


[+5] [2009-02-02 12:38:05] aatifh

"Good Programmer code and Great reuse."

"Pick any three lines from my code and I will tell you from where they are coming and what they do."

[+5] [2009-02-08 23:45:48] community_owned

Documentation is like sex: when it is good, it is very, very good; and when it is bad, it is better than nothing.

If you want to confuse your enemies, give them the source code. If you want to really confuse them, give them the documentation.

[+5] [2009-02-17 22:19:02] Rulas

Good programmers invest the effort to learn how to use current practices. Not-so-good programmers just learn the buzzwords, and that’s been a software industry constant for a half century.

Boris Beizer

"That's been SOP for leveraging software key value points for the past 50 years" - Massif
[+4] [2009-02-08 23:52:14] community_owned

Some OOP jokes:

Q: What is the difference between an object methodologist and a terrorist?
A: You can negotiate with the terrorist.
From comp.object:
Q: How many object programmers does it take to screw in a lightbulb?
A: None. You just send a change bulb message to the socket object!
Have you hear they are developing an OO version of COBOL? It's called "ADD ONE TO COBOL"
This is an object-oriented system: if we change anything, the users object.
// Definition of a Software professional in C++:

class cSoftwareProfessional
        double salary;
        long   lunches;
        float  jobs;
        char   unstable;
        void   work;


        FTP(); // FTP: Full Time Pass

[+4] [2009-02-26 18:19:49] Gavin Miller

Processes and methodologies can make good servants but are poor masters

Mark Dowd, John McDonald & Justin Schuh in " The Art of Software Security Assessment [1]"


[+4] [2009-02-26 19:15:56] Gumbo

Simplicity is hard to build, easy to use, and hard to charge for. Complexity is easy to build, hard to use, and easy to charge for.
Chris Sacca [1]


[+4] [2009-02-19 13:27:26] Anurag Uniyal

a quote from my prev. manager

- will it work on 19 inch monitor too

(1) That is not a trivial question depending on the application until a few years ago the software I am working on was resolution dependent .... - hhafez
yes i understand, today also many webapps will not work on all monitors but that quote was generic and most of the app will work without monitor too - Anurag Uniyal
[+4] [2009-02-18 12:33:07] Comptrol

Write in C / Listen Here [1]

When I find my code in tons of trouble,
Friends and colleagues come to me,
Speaking words of wisdom:
"Write in C."

As the deadline fast approaches,
And bugs are all that I can see,
Somewhere, someone whispers:
"Write in C."

Write in C, Write in C,
Write in C, oh, Write in C.
LOGO's dead and buried,
Write in C.

I used to write a lot of FORTRAN,
For science it worked flawlessly.
Try using it for graphics!
Write in C.

If you've just spent nearly 30 hours
Debugging some assembly,
Soon you will be glad to
Write in C.

Write in C, Write in C,
Write in C, yeah, Write in C.
Only wimps use BASIC.
Write in C.

Write in C, Write in C
Write in C, oh, Write in C.
Pascal won't quite cut it.
Write in C.

Write in C, Write in C,
Write in C, yeah, Write in C.
Don't even mention COBOL.
Write in C.

(2) "Java is for children, write in C" - Maxim Veksler
[+4] [2009-01-15 21:07:22] David Božjak

Not sure if these were mentioned, however they come from this site [1]


[+4] [2009-01-15 20:23:17] Bill Karwin

This is one that I came up with to use in my .signature, I believe it's original:

If you've seen one picture of the Mandelbrot Set [1], you've seen them all.

This was in response to the great number of calendars and coffee table books with pictures of fractals.


That isn't actually true, unless the picture has infinite resolution. - SLaks
[+4] [2008-12-19 04:04:54] slipjig

The third version is the first version that doesn't suck. -Mike Simpson

Funny, I always assumed that was Steve Jobs - Todd Friedlich
[+4] [2009-01-15 01:50:39] Michael Bishop

"Computers make it easier to do a lot of things, but most of the things they make it easier to do don't need to be done."

-- Andy Rooney, writer and commentator (1919-)

By the looks of him, he died in 1987 - StingyJack
[+4] [2008-12-18 09:58:41] Lonzo

Like wine, the mastery of programming matures with time. But, unlike wine, it gets sweeter in the process.

-Lawrence Mucheka

[+4] [2008-11-22 07:56:56] Prakash

"C makes it easy to shoot yourself in the foot; C++ makes it harder, but when you do it blows your whole leg off" - Bjarne Stroustrup

[+4] [2008-11-01 06:12:37] Mohit Ranka

"I do not care if it works on your system, I am not gonna ship your computer."

[+4] [2008-10-31 10:34:26] Krakkos

"There is never enough time to do it right first time, but there is always time to go back and fix it when it breaks.."

[+4] [2008-11-15 14:59:34] community_owned

This is missing from the list:

"Premature optimization is the root of all evil"


"We should forget about small efficiencies, say about 97% of the time: premature optimization is the root of all evil." (Knuth, Donald. Structured Programming with go to Statements, ACM Journal Computing Surveys, Vol 6, No. 4, Dec. 1974. p.268.)

[+4] [2008-11-15 19:10:08] community_owned

Amateur programmers think there are 1000 bytes in a kilobyte; Real Programmers know there are 1024 meters in a kilometer.

We are so overdue to change the definition of K in our industry to conform to international metric standards - Software Monkey
(1) We are so overdue to change the definition of K in international metric standards to match our ... what, our network speed industry or our CPU speed industry or our battery capacity industry, I forgot, someone please help recover my ... - Windows programmer
[+4] [2008-10-22 17:57:13] WolfmanDragon

Intel giveth and Microsoft taketh away.

I have no idea who came up with it, although there was an interview with Gordon Moore where he quoted it himself.

[+4] [2008-10-22 18:06:52] Rontologist

A documented bug is not a bug; it is a feature. -- James P. MacLennan

[+4] [2008-10-22 13:43:16] Owen

Just saw this one:

"I'm not a great programmer; I'm just a good programmer with great habits." - Kent Beck

[+4] [2009-07-08 15:48:53] Mark

If you use copy and paste while you're coding, you're probably committing a design error.

-- David Parnas [1]


This one is important, especially for people trying to learn OOP. - Sneakyness
[+4] [2009-07-17 08:06:17] Justin Johnson

Programming is not like being in the CIA; you don't get credit for being sneaky. It's more like advertising; you get lots of credit for making your connections as blatant as possible.

Steve McConnell on coupling from, "Code Complete."

[+4] [2009-07-26 16:11:26] Bryan Oakley

it's not what the software does. it's what the user does. [1] -hugh macleod


[+4] [2009-08-20 09:23:00] n002213f

"Good programmers know what to write. Great ones know what to rewrite (and reuse)."

Eric Raymond

[+4] [2009-10-10 13:35:27] vobject

"The Free Lunch Is Over."

Herb Sutter

[+4] [2009-04-03 06:02:07] Gili

"When in doubt, leave it out" - Joshua Bloch

[+4] [2009-06-27 20:38:25] Dima

If architects built buildings the way programmers build programs, the first woodpecker to come along would destroy the whole civilization.

-- Gerald Weinberg

(1) duplicate duplicate - LegendLength
[+4] [2008-09-15 20:00:20] user9740

A computer scientist counts to ten: 0, 1, 2, 3, 4 ...

everyone else counts to ten: 1, 2, 3, 4, 5

It actually took me a few seconds to figure that one out. "0 is the first number so of course....Wait!! I never count zero oranges, one orange...." - WolfmanDragon
[+4] [2008-09-16 07:48:08] user4614

Bolton College Lecturer 1988 (name forgotten)

To iterate is human, to recurse divine.

[+4] [2008-09-16 13:08:07] Henrik Warne

"A complex system that works is invariably found to have evolved from a simple system that worked." John Gall

"Enlightened trial and error outperforms the planning of flawless intellects." David Kelly

"It's OK to figure out murder mysteries, but you shouldn't need to figure out code. You should be able to read it." Steve McConnell

"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's .sig quote.

And two quotes from the Agile Manifesto:

"Working software is the primary measure of progress."

"Simplicity -- the art of maximizing the amount of work not done -- is essential."

[+4] [2008-09-16 15:07:03] rgcb

Not sure how its ended up in my twitter favoites, but I think I saw this on proggit at some point:

"Simplicity is hard to build, easy to use, and hard to charge for. Complexity is easy to build, hard to use, and easy to charge for."

[+4] [2008-09-16 21:20:02] CindyH

C trades a slap on the wrist at compile time for a knife in the back at run time. -- as far as I know, my C teacher in college (can't find in google)

[+4] [2008-09-16 19:23:20] Ian Dickinson

Richard A. O'Keefe (from The Craft of Prolog, and before that, comp.lang.prolog):

Elegance is not optional.

[+4] [2008-09-16 22:38:22] Paucus

"It makes no sense to try to do what we can. We must do what is necessary"

Winston Churchill (quoted from memory, may not be exact)

[+4] [2008-09-17 02:44:45] S.Lott

Can't locate the source. It describes C programming perfectly.

80 percent of my problems are simple logic errors. 80 percent of the remaining problems are pointer errors. The remaining problems are hard.

Google had it - Mark Donner, IBM Watson Research Center. - Kendall Helmstetter Gelner
An even clearer version of the quote here that's probably the original: - Kendall Helmstetter Gelner
[+4] [2008-09-18 06:35:05] Mats Wiklander

"Software isn't about methodologies, languages, or even operating systems. It is about working applications."

-- Christopher Baus

[+4] [2008-09-17 14:11:42] Henrik Bierbum Bacher

@ Unsliced [1]

Any sufficiently advanced magic is indistinguishable from a rigged demonstration.

Actually this one is:

Any sufficiently advanced technology is indistinguishable from magic

by Arthur C. Clarke

[1] #58672

The "rigged demo" one is a riff on Clarke's Law (and an appropriate one) - CMPalmer
[+4] [2008-09-17 10:27:42] fuad

... what society overwhelmingly asks for is snake oil. Of course, the snake oil has the most impressive names — otherwise you would be selling nothing — like "Structured Analysis and Design", "Software Engineering", "Maturity Models", "Management Information Systems", "Integrated Project Support Environments" "Object Orientation" and "Business Process Re-engineering" (the latter three being known as IPSE, OO and BPR, respectively).

Edsger W. Dijkstra — EWD 1175: The strengths of the academic enterprise [1]


[+4] [2008-09-17 11:15:36] dlat

Python's syntax succeeds in combining the mistakes of Lisp and Fortran. I do not construe that as progress.

-- Larry Wall

...and no, I do not agree.

[+4] [2008-09-18 03:00:14] Steve Wranovsky

"He who hasn't hacked assembly language as a youth has no heart. He who does as an adult has no brain." -- John Moore

[+4] [2008-09-18 03:01:45] Steve Wranovsky

“Any intelligent fool can make things bigger and more complex. It takes a touch of genius - and a lot of courage - to move in the opposite direction.” - E.F. Schumacher

[+4] [2008-09-29 23:26:01] florin

If it doesn't have to work, we can do it real quick.

-- Watts Humphrey

[+4] [2008-09-23 09:12:00] Chris OC

If at first you don't succeed, try/catch, try/catch again.

[+4] [2008-09-28 11:00:58] Firas Assaad

“You want to enjoy life, don't you? If you get your job done quickly and your job is fun, that's good isn't it? That's the purpose of life, partly. Your life is better.

I want to solve problems I meet in the daily life by using computers, so I need to write programs. By using Ruby, I want to concentrate the things I do, not the magical rules of the language, like starting with public void something something something to say, "print hello world." I just want to say, "print this!", I don't want all the surrounding magic keywords."

Yukihiro Matsumoto, The Philosophy of Ruby [1]


[+4] [2008-10-02 20:23:33] Ryan Delucchi

Software Engineering isn't rocket science ...

It's harder

[+4] [2008-10-01 11:19:30] RobS

"Powered by 110000001111111111101110"

-An email signature I saw once

(3) ha...good one :) C0FFEE - epatel
[+4] [2008-09-23 19:24:14] Gordon Bell

"I do not fear computers. I fear the lack of them." -Isaac Asimov

[+4] [2008-09-24 01:02:21] Bonnici

Never underestimate the disparity between developer excitement and user apathy.

From this [1] great article.


[+4] [2008-10-13 22:55:03] zzamboni

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

[+4] [2008-10-19 03:05:47] RazMaTaz

Two strings walk into a bar. One says: "I'd like a beer pleas$$%~¬..3783u
The other string says: "Sorry about my friend, he's not null-terminated."

This is a duplicate. - John Gietzen
[+4] [2008-10-09 06:43:23] philippe

On LOC: Lines of code are only worth counting, when times as come to delete them.

Rephrased from Warren' answer [1].


[+4] [2008-10-02 21:33:53] KW.

Sure, it's overkill. But you can never have too much overkill...

A good programmer looks both ways before crossing a one-way street

Fatal exception at address: Ox13374A40. Press OK to continue.

The reason we plan ahead is so that we don't have to do anything right now

[+4] [2008-10-02 21:43:02] keparo

From Alan J. Perlis' "Epigrams in Programming"

A language that doesn't affect the way you think about programming, is not worth knowing.

A program without a loop and a structured variable isn't worth writing.

Simplicity does not precede complexity, but follows it.

In programming, as in everything else, to be in error is to be reborn.

Sometimes I think the only universal in the computing field is the fetch-execute cycle.

There are two ways to write error-free programs; only the third one works.

The eleventh commandment was "Thou Shalt Compute" or "Thou Shalt Not Compute" - I forget which.

Wherever there is modularity there is the potential for misunderstanding: Hiding information implies a need to check communication.

Symmetry is a complexity-reducing concept (co-routines include subroutines); seek it everywhere.

If you have a procedure with ten parameters, you probably missed some.

[+4] [2008-10-05 06:56:03] Anurag Uniyal

Run this in Python:

import this

and remember to check the source of that module - Federico Ramponi
[+4] [2008-09-15 09:44:24] James Simm

Mosher's Law of Software Engineering:

Don't worry if it doesn't work right. If everything did, you'd be out of a job.

[+4] [2008-09-16 03:44:45] Tim Sally

A quote from Richard Powers's novel, Plowing the Dark:

Code is everything I thought poetry was, back when we were in school. Clean, expressive, urgent, all-encompassing. Fourteen lines can open up to fill the available universe.

Definitly not one of the more common ones, but it expresses one of my main motivations behind studying Computer Science :-).

[+4] [2008-09-16 06:18:08] Jonathan Arkell

"I've never written the best code I've ever written."

Awesome quote from an old friend.

[+4] [2008-09-13 10:24:20] warren_s

Another Nathaniel Borenstein one for me:

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

Particularly apropos considering some of the LHC doomsday hysteria this week...

[+4] [2008-09-12 20:58:15] Kibbee

I'm not sure who said it, but it goes something like this.

If your bug has a one in a million chance of happening, it'll happen next tuesday.

To sum up the meaning, computers operate so quickly, and large systems may have so many users, that even something with a very low occurrence rate would still happen quite often.

Larry Ostermann got it from a senior guy. - Ian Boyd
[+4] [2009-11-23 03:31:01] BFinney

"We don't have time to plan. We only have time to execute."

I F&#@^%! hate this answer... even if it is right (JWZ loves it.) - beggs
[+4] [2009-11-17 18:43:50] Mike Gleason jr Couturier

"The programmer, like the poet, works only slightly removed from pure thought-stuff. He builds his castles in the air, from air, creating by exertion of the imagination. Few media of creation are so flexible, so easy to polish and rework, so readily capable of realizing grand conceptual structures."

— Frederick P. Brooks Jr.

[+4] [2009-12-10 22:50:07] yossale

Artificial intelligence is no match for real stupidity.

[+4] [2009-12-16 00:00:22] Jens Granlund
"When I have a specific goal in mind and a complicated piece of code to write,
I spend my time making it happen rather than telling myself stories about it."
- Steve Yegge

[+3] [2009-12-16 20:42:09] David

"There is no programming problem that can't be solved with one more level of indirection." -- John McCarthy

"... or a couple more low-memory globals." -- Andy Hertzfeld

(Andy, if you never really said that, let me know...)

"If your hammer is C++, everything looks like your thumb." -- Scott Douglass

[+3] [2009-12-13 18:39:24] Ikke

Only in wealth, there is room for a bad idea -- Jasper van der Meer

[+3] [2009-12-19 22:29:16] plan9assembler

If P = NP, then the world would be a profoundly different place than we usually assume it to be. There would be no special value in “creative leaps,” no fundamental gap between solving a problem and recognizing the solution once it’s found. Everyone who could appreciate a symphony would be Mozart; everyone who could follow a step-by-step argument would be Gauss... — Scott Aaronson, MIT

The main argument in favor of P ≠ NP is the total lack of fundamental progress in the area of exhaustive search. This is, in my opinion, a very weak argument. The space of algorithms is very large and we are only at the beginning of its exploration. [. . .] The resolution of Fermat's Last Theorem also shows that very simply [sic] questions may be settled only by very deep theories. —Moshe Y. Vardi, Rice University

Being attached to a speculation is not a good guide to research planning. One should always try both directions of every problem. Prejudice has caused famous mathematicians to fail to solve famous problems whose solution was opposite to their expectations, even though they had developed all the methods required. —Anil Nerode, Cornell University

[+3] [2009-11-02 15:42:38] bludger

Good code is its own best documentation.

[+3] [2009-11-16 11:58:38] Zubair

I don't understand why "you" can't get it to work. It works on "my" machine.

:This is a brilliant way to deflect criticism away from your own code and deflect the blame on the person finding the fault in your code/software.

(1) "It works on my machine" should be tattooed on the forehead of every developer. - Cylon Cat
The problem is, this doesn't work at my office. - Tom
We're not shipping your machine! :D - Furis
[+3] [2009-11-06 19:53:34] RMorrisey

Team debugging: the act of intimidating a PC into doing for two people what it refuses to do for one.

[+3] [2009-11-10 15:41:08] KMoraz

I stumbled upon this quote and I sympathize with it:

I get as much enjoyment from trashing code as I do from scratching it out in the first place!


[+3] [2009-11-01 11:59:34] bludger

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 W. Kernighan

(2) Already posted... - DisgruntledGoat
[+3] [2009-11-20 15:06:03] AaronLS

It can scarcely be denied that the supreme goal of all theory is to make the irreducible basic elements as simple and as few as possible without having to surrender the adequate representation of a single datum of experience. -Albert Einstein

This has been requoted as "Everything should be made as simple as possible, but no simpler." but I've never seen where he was actually been documented as saying exactly that.

There are two facets of this quote that relate to software development and maintaining a balance between complexity and simplicity.

The key thing not to miss is "as simple as possible" or "without having to surrender the adequate representation of a single datum" means that sacrifices should not be made in the name of simplification which would result in over-simplification.

Never make a solution more complex because it feels more clever. Sometimes in the face of a deadline, it could also mean don't make something more complex trying to satisfy non-existent "what if" requirements. The "What if our [insert software used by 10 internal staff] goes commercial and we need to provide it in 20 different languages?" Reusability and generalization can be good, but there is a sweet spot of balance between the extra effort becoming wasteful, and the lack of effort creating future challenges.

There are those developers who sometimes don't completely feel out all the scenarios their software will encounter, and then there is the flip side where you have overly passionate developers that sometimes make things far more complex than necessary. Both of which have a lot to gain from this quote.

[+3] [2008-09-12 20:52:12] Rob

Francis Crick

"God is a hacker, not an engineer. You can do reverse engineering, but you can’t do reverse hacking.”

[+3] [2008-09-13 15:20:49] Paul Kroll

"All programming is an exercise in caching." - Terje Mathisen ( Found here [1])


[+3] [2008-09-15 12:04:17] Naseer

Linus Torvalds

Talk is cheap, show me the code !

[+3] [2008-09-15 09:39:59] community_owned

There are 10 kinds of people -- those who understand binary and those who do not.

I don't understand why there are not more votes on this one... its a great joke!! The only logic is that most programmers these days don't understand binary :) - Jeach
Isn't there another one about hex notation? (Duplicate, by the way) - new123456
[+3] [2008-09-15 13:20:02] community_owned

I think the collection under is fun (example: "Ted Nelson: Any fool can use a computer. Many do." or "Alan J. Perlis: There are two ways to write error-free programs; only the third one works.").

[+3] [2008-09-15 12:47:10] user6873

Real programmers don't document If it was hard to write, it should be hard to understand!

[+3] [2008-09-12 15:48:07] Raz

Niven's laws:

[+3] [2008-10-05 07:04:07] dimitrisp

Here's a humorous, sarcastic one:

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.

Rick Cook, The Wizardry Compiled

+1 Great one. Got a self-made poster of this in my office. - J. Random Coder
[+3] [2008-10-02 21:23:28] Scott Dorman

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

[+3] [2008-10-01 11:37:26] Prog

In effect, we conjure the spirits of the computer with our spells.

From SICP.

[+3] [2008-10-02 21:16:28] Alan De Smet
"This is important, and a little hard to understand. English is useful because it's a mess. Since English is a mess, it maps well onto the problem space, which is also a mess, which we call reality. Similarly, Perl was designed to be a mess (though in the nicest of possible ways)." - Larry Wall " 2nd State of the Onion [1]", August 1998

[+3] [2008-10-19 03:06:45] RazMaTaz

You can have a negative percent chance of succeeding in a task. For example, if you have a -5% chance of succeeding, not only will you fail every time you make an attempt, you will also fail 1 in 20 times that you don't even try.

[+3] [2008-10-15 21:53:02] Marcel Jackwerth

"C makes it easy to shoot yourself in the foot. C++ makes it harder, but when you do, it blows away your whole leg." - Bjarne Stroustrup

[+3] [2008-10-15 17:24:17] Maglob

"The road to wisdom? Well, it's plain
And simple to express:
and err
and err again,
but less
and less
and less."
-- Piet Hein

[+3] [2008-10-15 17:27:33] John Kraft

"Hey, did someone turn off the database?"

[+3] [2008-09-24 02:21:50] Malcolm Groves

"Rules are for the obedience of the inexperienced and the guidance of the wise." -- Author unknown

"There is a great satisfaction in building good tools for other people to use." - Freeman Dyson

"Process is no substitute for synaptic activity" - Jeff DeLuca

[+3] [2008-09-26 20:47:29] Micky McQuade

Found in some comments relating to an automated zip

// zip it, zip it good.

I'm just guessing that the people that downvoted this didn't get the reference to the Devo song called Whip It [1]

Oh well. :(


(17) I'm guessing they did, and still downvoted you. - Ty.
[+3] [2008-09-23 11:17:55] Andrew Swan

If I have not seen as far as others, it is because giants were standing on my shoulders.

-- Hal Abelson

[+3] [2008-09-22 19:00:15] Juha Pohjalainen

Every dark corner you haven't explored with your flashlight is full of bugs.

Kent Beck and Martin Fowlere in Planning Extreme Programming, page127.

[+3] [2008-09-18 06:15:08] jfs

Make It Work Make It Right Make It Fast

[+3] [2008-09-17 20:53:49] Thevs

Singleton is a misconcept in OOP unless it's used as a misconcepted paradigm for application development.


[+3] [2008-09-22 11:07:10] Subtwo

For all you family fathers/mothers out there:

"Anyone who has a wife and small kids knows that programming belongs to the easy things in life."
-- me some minutes ago (inspired by a quote from John McEnroe)

[+3] [2008-09-17 06:27:48] Christian Campbell

The goal of Computer Science is to build something that will last at least until we've finished building it.

[+3] [2008-09-16 10:23:42] GateKiller

"Good web applications should look like trifle."

Cal Henderson -

[+3] [2008-09-16 16:43:56] Tim

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 Cargill

[+3] [2009-07-02 07:57:45] Rigo Vides

Back to home at the bus today, I thought this one:

The time machine's software will have a recursive main method.

I know it's horrible, but it stoned me for 2 seconds.

[+3] [2009-06-22 11:40:22] community_owned

Behind Every Successful Coder, there'an even more successful De-Coder to understand that Code.

[+3] [2009-06-22 11:44:19] Lloyd

My all time favourite adaptation of Shakespeare:

0x2B || !0x2B

(1) == true - Svish
[+3] [2009-06-13 18:39:05] community_owned

"All programs can be shortened by at least one line.

All programs contain at least one error.

All programs can be reduced to one line which is wrong!"

Shouldn't that be -inf lines of which one is wrong? - Georg Fritzsche
[+3] [2009-06-13 19:04:42] Andrew

Here's one for the CSLA.Net [1] programmers, a twist on the catchprase of The Fast Show's ' Swiss Toni [2]'..

"Programming with the CSLA is like making love to a beautiful woman. First you have to check the IsDirty() flag"

- Dean Biggs

Still makes me chuckle :o)


[+3] [2009-06-16 13:59:56] Andrew Garrison

I always think about this one when I'm forced to work with FORTRAN

"In the good old days physicists repeated each other's experiments, just to be sure. Today they stick to FORTRAN, so that they can share each other's programs, bugs included."

-Edsger W.Dijkstra

[+3] [2009-06-13 18:12:44] le dorfier

Some day, someone will construct a list of 500 Great Programming Quotes, and this will be one of them.

Note: When posted, this was #499. - le dorfier
[+3] [2009-06-13 14:20:25] community_owned

Some programmers try to reach higher by standing on other programmers' shoulders. Other programmers try to reach higher by standing on other programmers' toes.

Don't know where I got it from.

[+3] [2009-06-13 14:27:53] Jeff Fritz

We had a good one recently from one of our developers on staff:

If our customers wanted a product that worked that way, tell them to purchase a product that works that way.

I like it because it speaks towards the never ending list of requests from our customers, and how some customers have EXACTLY the opposite opinion of how another customer likes our software to work.

But without those picky customers, we wouldn't have a job... oh well...

"[...] some customers have EXACTLY the opposite opinion of how another customer likes our software to work." Isn't that what options are for? - LegendLength
[+3] [2009-05-15 17:30:46] G.G.

Any problem in computer science can be solved with another layer of indirection. But that usually will create another problem.

David Wheeler

[+3] [2009-05-18 10:17:23] Jonathan Prior

“It’s hardware that makes a machine fast. It’s software that makes a fast machine slow.”

– Craig Bruce

[+3] [2009-06-02 07:12:08] James Brooks

I love this one.

Did you write the case structure? If you did, please get your colleague to slap your head. If your colleague wrote it, please slap your colleague in the head. Preferably hard. That code is stupid and redundant.

[+3] [2009-06-02 08:32:08] e-satis

Reiser, a French drawer once wrote this little chat :

  • Today's computers are amazing. Then can perform 20 billion calculations a second, making only one mistake every 10 billion calculations !

  • 2 screw up a second, so that's progress ?

[+3] [2009-04-04 10:40:33] Fortyrunner

If you're going to break it, then break it good. Break everything. Get to the very front of the line. Don't like move up a couple of slots. That's pointless.

--Anders Hejlsberg

[+3] [2009-04-04 22:30:04] Don Werve

If debugging is the act of removing bugs from software, than programming must be the act of putting them in.

full marks for your quote...I remember when Dave Thomas said that when you aren't debugging the code you must be enbugging your software. - MikeJ
(2) This is a duplicate. - Beska
[+3] [2009-04-02 21:28:51] Mutant

Change is the only constant thing in Software Engineering.

[+3] [2009-04-03 05:37:36] community_owned

There are only 10 kinds of people, those who understand ternary, those who don't and those who think it's binary

[+3] [2009-03-13 05:41:40] umar

This one I saw written on advertising posters in coding competitions held in my univeristy, I don't know who coined it:

There are 10 types of people in this world: those who understand ternary, those who don't, and those who confuse it with binary.

[+3] [2009-03-23 17:27:36] fsdemir

The whole HTML validation exercise is questionable, but validating as XHTML is flat-out masochism. Only recommended for those that enjoy pain. Or programmers. I can't always tell the difference.

-Jeff Atwood

[+3] [2009-02-28 10:00:38] X-Istence

"You can write software expecting the hardware to be perfect, unfortunately hardware is not perfect and you have to fix it in code."

He was my mentor for FIRST Robotics, and this is absolutely true.

[+3] [2009-03-06 15:39:44] Maxim Veksler

Once cut fails try awk, once awk fails do perl. Once perl sucks learn python. (Me, commenting on bash tips thread)

(1) +1 for "once Perl sucks". I too have reached the threshold. - j_random_hacker
[+3] [2009-03-08 19:25:25] Pat

"A well-written program is its own heaven; a poorly-written program is its own hell."

From the TAO Of Programming

It's hard enough to find an error in your code when you're looking for it; it's even harder when you've assumed your code is error-free.

Steve McConnell

[+3] [2009-03-13 03:53:15] Stephen P. in Roswell

"Perspective is worth 80 I.Q. points" - Alan Kay

[+3] [2009-04-15 21:24:11] voyager

Arrogance in computer science is measured in nano-Dijkstras. - Alan Kay

[+3] [2009-04-08 13:01:15] Nuno Furtado

In the JSR-296 "The intended audience for this snapshot is experienced Swing developers with a moderately high tolerance for pain. "

Gil Hova Reply :"Wait. There are Swing developers with low tolerances for pain?"

from :

[+3] [2009-04-26 06:55:42] Sohail Anwar

It's hard enough to find an error in your code when you're looking for it; it's even harder when you've assumed your code is error-free.

[+3] [2009-09-29 10:44:18] dstibbe

In theory, theory and practice are the same; in practice, they are not.

no comment on the downvote? - dstibbe
I think the downvote is due to the fact that this quote has been posted several times already. - Moayad Mardini
[+3] [2009-09-22 21:42:43] Rachel

Design bugs are often subtle and occur by evolution with early assumptions being forgotten as new features or uses are added to a system. —Fernando J. Corbató

[+3] [2009-09-22 19:46:02] Rachel

Requirements are like water. They are easy to build on when they are frozen.

You should make sure your quote doest already exist before posting it again. All of your posts were repeats. This one was the highest voted answer, how in the hell did you miss it? - Neil N
[+3] [2009-09-22 20:09:33] Bomlin

While tracking down a long running process, I found the offending line of code. The bad code had the following comment.

"Change so simple, no need to test."

[+3] [2009-09-23 05:06:40] Andrey Adamovich

Don't use web services to transfer data between databases located in the same room.

Some of the architects after realising failure of his provided architecture.

[+3] [2009-09-23 14:31:53] community_owned

"No software survives contact with the users." ~ Me

FYI: Reworking of "No battle plan survives contact with the enemy" ~Field Marshall Helmuth Carl Bernard von Moltke

[+3] [2009-10-15 20:21:27] azamsharp

I am not smart I just screwed up first!

I am not smart I just stay with problems longer.

[+3] [2009-10-18 06:43:58] Anon

"Prematurely quoting someone else won't get you to the root of anything."

(Emphasis on "prematurely" here. The point in the Knuth quote this references is of course valid, but too often that quote is used to reflexively shoot down any question about performance. An intellectual curiosity about performance first principles is better than that kind of faux "wisdom", something I'm sure Knuth would agree with.)

[+3] [2009-10-30 09:49:18] Srinivas M.V.

"Be Jack of all you can be Master at any time and on any programming language"

I so agree with this. Never let any one technology dictate your skill or usefulness as a programmer. - Nick Wiggill
[+3] [2009-10-30 09:51:42] Martin DeMello

Any sufficiently well-documented lisp program contains an ML program in its comments -- Unknown

[+3] [2009-08-12 16:53:20] Zac

"It compiles. Ship it!" -- anon.

"People who find Wiki-markup too difficult to use and need a WYSIWYG-editor shouldn't be using a Wiki in the first place." -- me

These quotes should be in separate posts. - sblom
[+3] [2009-08-27 07:21:20] Dawie Strauss

Fowler’s law is invoked when you have a penetrating insight into object-oriented programming.

If the quality of your insight is very high, you realise that Martin Fowler published the idea only five years ago. If the idea is poor, you realise that he published your idea more than 10 years ago…

-- No More Hacks [1]


[+3] [2009-09-14 19:07:46] Buggieboy

j++; // increment j

HAHA!................... - Goober
[+3] [2009-07-09 01:48:19] jds2501

One Page Principle: A specification that will not fit on one page of 8.5x11 inch paper cannot be understood. -- Mark Ardis

[+3] [2009-07-21 11:07:43] wazoox

Here are a couple that aren't directly programming-related but fit nicely anyway :

I love deadlines, I love the whooshing noise they make as they go by.

Douglas Adams

This one is of unknown origin but I find it funny:

Jesus saves but only Buddha makes incremental backups.

This one really isn't programming related, but programmers certainly know what it means anyway:

Writing about music is like dancing about architecture.

Frank Zappa

Then you think about that pointy haired boss, or your lost job, or your ailing startup and you get this one for you :

Dope will get you through times of no money better than money will get you through times of no dope.

Freewheelin' Franklin

[+3] [2009-07-26 14:09:16] Umesh Aawte

If you have a source do any thing.

[+3] [2008-10-22 19:19:30] Newtopian

"Simplicity is bliss"

"They won't tell you that they don't understand it; they will happily invent their way through the gaps and obscurities" -- V.A. Vyssotsky on software programmers and their views on specifications

"I love deadlines... I like the whoosing sound they make as they pass by" -- Douglas Adams

[+3] [2008-10-08 18:04:48] Steven A. Lowe

Software with no bugs is obsolete

[+3] [2008-10-19 03:09:55] RazMaTaz

Compared to Java code, XML is agile and flexible.
Compared to Python code, XML is a boat anchor, a ball and chain.

-- PJ Eby, " Python Is Not Java [1]"


(1) It's by PJE, added credit - orip
[+3] [2008-11-19 14:41:29] jJack

Never Base a Technical Decision on Political Issues


Never Base a Political Decision on Technical Issues

-Geoffrey James

[+3] [2008-11-24 13:27:16] remonedo

Computer programmers don't byte, they nibble a bit

[+3] [2008-11-24 18:19:39] David Robbins

The Knuth, the whole Knuth, and nothing but the Knuth, so help me Codd! -- don't know where I heard this, but I laughed.

[+3] [2008-12-19 02:39:55] Mike Hofer

Not sure where I heard this one, but it's stuck with me:

Think first; code later.

I also love this one by Aasimov:

Part of the inhumanity of the computer is that, once it is competently programmed and working smoothly, it is completely honest.

And Richard Feynmann (though it wasn't necessarily about software):

What I cannot create, I do not understand.

[+3] [2008-12-06 15:36:19] mepcotterell

Concerning optimization:

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

In software, the most beautiful code, the most beautiful functions, and the most beautiful programs are sometimes not there at all. - Jon Bentley, Beautiful Code (O'Reilly), "The Most Beautiful Code I Never Wrote"

[+3] [2008-12-06 08:22:52] Jared

"There is the way we teach you to program in class and the way it's done in the real world. do it the way we teach you if you want to pass."

CS professors sigh - Max Schmeling
[+3] [2009-01-15 19:01:26] community_owned

"Real programmers don't unit test."

[+3] [2009-01-15 20:46:26] jle

If it is worth doing once, it is worth automating...

I'd do things once, but twice?? I think not... - drhorrible
[+3] [2009-01-15 21:31:15] Karl

LISP: To call a spade a thpade


[+3] [2009-01-16 07:01:56] urig

Not sure who this is attributable to:

"Assumption is the mother of all f***ups".

As simple as that: Assume nothing. Investigate everything. Ask people around you to find out the qualified answer. Do not assume - instead, verify.

This is the foundation for so many of the other bits of wisdom you'll find posted here.

I think it comes from the film Priscilla, Queen of the Desert. I've not found a reference to it prior to that. - DanSingerman
A similar quote from my first software manager (good-naturedly): "Never assume, you'll just make an 'ass' out of 'u' and 'me'"; - Jim Ferrans
[+3] [2009-02-02 03:45:32] allan

"Beware of computer scientists with screwdrivers." --Unknown source

[+3] [2009-02-02 07:22:29] community_owned

"Computers enable us to in thirty minutes what we never would have had to do before."

[+3] [2009-02-01 22:25:42] vobject

Nail here for a new monitor [x]

[+3] [2009-01-19 06:07:52] Michael Buen

Don't code today what you can't debug tomorrow.

[+3] [2009-01-19 06:24:02] Jonathan Sampson

Let's not forget common help-desk terms...

and the frequent sister to PEBKAC

(2) And let's not forget PICNIC - Problem in Chair, Not in Computer. - RobH
[+3] [2009-01-19 06:26:36] Jonathan Sampson

"The enemy of Great Code, is 'Good Code.'" - Unknown

Probably paraphrased from Voltaire "Don’t let the perfect be the enemy of the good." - Brian Mitchell
Sounds like it may very well have been, Brian. You know what they say, plagiarism is the greatest form of flattery ;) - Jonathan Sampson
[+3] [2009-01-19 06:35:25] Tim Post

Comments? Documentation? Don't they call it code for a reason?

[+3] [2009-02-24 08:45:20] Alex Barrett

"Anything that can go wrong, will go wrong." -- Murphy's Law

[+3] [2009-02-26 19:07:19] Maxim Veksler

I love deadlines. I especially like the whooshing sound they make as they go flying by. (Douglas Adams).

Tell me what you need and I'll tell you how to get along without it. (Unknown)

The 50-50-90 rule: Anytime you have a 50-50 chance of getting something right, there's a 90% probability you'll get it wrong. (Unknown)

Latest survey shows that 3 out of 4 people make up 75% of the world's population. (Unknown)

Documentation is like sex: when it is good, it is very, very good; and when it is bad, it is better than nothing. -- Dick Brandon

The whole point of getting things done is knowing what to leave undone. (Oswald Chambers)

To error is human, to fix it - divine. (Maxim Veksler)

I'll try to be nicer if you try to be smarter (Assaf Nitzan)

When debugging, novices insert corrective code; experts remove defective code. ~Richard Pattis

When a programming language is created that allows programmers to program in simple English, it will be discovered that programmers cannot speak English. ~Author Unknown

One man's constant is another man's variable. ~Alan J. Perlis

Ready, fire, aim: the fast approach to software development. Ready, aim, aim, aim, aim: the slow approach to software development. ~Author Unknown

Programming is like sex. One mistake and you have to support it for the rest of your life. ~Michael Sinz

From a programmer's point of view, the user is a peripheral that types when you issue a read request. ~Peter Williams

Programmer - an organism that turns coffee into software. ~Author Unknown

Attribute goes to our bugzilla quips collection, and to the authors among them yours humble.

The first quote is douglas adams - Mark Rogers
[+3] [2009-02-27 21:21:22] Ascalonian

From the Tao Of Programming [1] :

Though a program be but three lines long, someday it will have to be maintained.


[+3] [2009-02-27 08:38:09] baash05

"Great things are not done by impulse, but by a series of small things brought together." -- Vincent Van Gogh --

It is what we do..

Well if small things matter... Write Vincent van Gogh instead of Vincent Van Gogh. Start van with a lowercase. - tuinstoel
[+3] [2009-02-11 12:33:51] Mindaugas Mozūras

Marick’s Law [1]:
When it comes to code it never pays to rush.


[+3] [2009-02-12 02:13:18] Hoffmann

"True glory consists in doing what deserves to be written; in writing what deserves to be read." - Pliny the Elder

[+3] [2009-02-02 10:00:36] community_owned

If builders built as programers program, the first woodpecker that came along would destroy the civilization.

[+3] [2009-02-03 03:17:11] community_owned

“First, solve the problem. Then, write the code.” (John Johnson)

[+3] [2009-02-08 01:13:39] Imageree

Check out my site: - it has an excellent selection of quotations about software development.

Some good quotes from the website:

"Don’t fix bugs later; fix them now." - Steve Maguire

"A well-written program is its own heaven; a poorly-written program is its own hell." - Geoffrey James

"Blame doesn't fix bugs." - Anonymous

"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

[+3] [2009-02-08 08:16:12] Germstorm

"If it wasn't for C, we'd be writing programs in BASI, PASAL, and OBOL."

"I will not be a lemming and follow the crowd over the cliff and into the C."
John (Jack) Beidler

"The C Programming Language — A language which combines the flexibility of assembly language with the power of assembly language."

"C(++) is a write-only, high-level assembler language."
Stefan Van Baelen

[+3] [2009-02-08 08:19:42] Germstorm

"It should be noted that no ethically-trained software engineer would ever consent to write a DestroyBaghdad procedure. Basic professional ethics would instead require him to write a DestroyCity procedure, to which Baghdad could be given as a parameter."

Nathaniel S. Borenstein

That's a duplicate of… - VVS
[+3] [2009-02-08 23:42:28] community_owned

-- Why did you call them "beta"?
-- Uhh... 'coz they're beta than nothin'

[+2] [2009-02-08 23:44:00] community_owned


Requirement wrong Requirement changed Requirement vague Requirement missing

Code design not to requirement

Code not to design

Interface error Sequence error Merge of branch failed

Arithmetic/logic error


Dynamic allocation Wrong argument

Not a Problem Duplicate

[+2] [2009-02-02 11:58:12] community_owned

"No! JavaScript isn't Java!"
Ash Hegab

[+2] [2009-02-02 12:44:22] community_owned

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

[+2] [2009-02-18 11:43:03] lostiniceland

Couldn´t find that one here so I will add it.

99% of the problems with a computer, programm, or code are located between keyboard and chair

It helps me writing code because I am trying to find the problem on my side first before I blame someone/something else.

[+2] [2009-02-08 23:46:18] community_owned

Programming today is a race between software engineers 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 ===

[+2] [2009-02-26 19:21:09] Scott Vercuski

Don't comment your code ... if it was hard to write ... it's going to be hard to read!


unknow should be burned alive. I hope the time they spend in hell is with un commented code with no white space. - baash05
-100 die die die. - Neil N
There is a reason why it's called code ! :) - ldigas
[+2] [2009-02-24 09:50:51] Krzysztof Koźmic

I don't remember where I read it, but it went something like this: (about fixing bugs)

"Novice programmers add corrective code. Seniore programmers remove defective code."

[+2] [2009-02-01 22:28:57] Denis Hennessy

Don't expect many comments. This code was hard to write, it should be hard to read.

(in assembly task switching routine)

[+2] [2009-02-02 07:44:47] igowen

"As soon as we started programming, we found to our surprise that it wasn't as easy to get programs right as we had thought."

--Maurice Wilkes

[+2] [2009-02-01 23:50:32] Herrmann

I've been keeping a list for quite some time using Google Notebook: Software Thoughts [1]

There's a good quote that has not been mentioned here yet:

(Peter) Norvig's law: Any technology that surpasses 50% penetration will never double again (in any number of months).


[+2] [2008-12-01 12:24:45] poseid

As my father used to say:

"In the land of the blind, the one-eyed man is king."

I find this quote useful in general when dealing with complex problems...

[+2] [2008-12-06 07:48:46] Mindaugas Mozūras

I’ve finally learned what ‘upward compatible’ means. It means we get to keep all our old mistakes.

-- Dennie van Tassel

[+2] [2008-12-11 01:23:31] community_owned

There is not now, nor will there ever be, a language in which it is the least bit difficult to write bad code.

Lawrence Flon

[+2] [2008-12-15 15:03:33] Bharani

Change causes problems

[+2] [2008-12-18 10:17:44] Lonzo

What happens in the mind of a fine artist is nothing different from that going on in the mind of an expert coder. Both see and thrive in the quintessential nature of patterns.

-Lawrence Mucheka

[+2] [2008-11-28 07:31:08] urig

Remember the original question said nothing about the quotes having to be funny:

"If it ain't broke, don't fix it" -- anonymous

[+2] [2008-11-24 17:45:21] Prashanth Babu

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

Duplicate of… - VVS
[+2] [2008-11-24 17:51:53] James Alexander

Difficult to code, impossible to maintain.

[+2] [2008-11-24 18:05:08] Mike Dunlavey

If you don't think you're doing great things, you're probably right.

[+2] [2008-11-24 18:16:50] community_owned

Never comment your code - if it was hard to write, it should be hard to understand. -Anonymous

[+2] [2008-10-23 15:47:37] SomeMiscGuy

"When you can measure what you are speaking about, ... you know something about it; but when you cannot measure it, ... your knowledge is of a meager and unsatisfactory kind..." —Lord Kelvin

[+2] [2008-10-22 18:10:01] plinth

"Programming in TSO is like kicking a dead whale down the beach" - Ken Thompson

[+2] [2009-07-18 12:46:32] community_owned

Don't know who said it and if the quote is 100% correct (maybe someone can help) but here goes...

"Development has two outputs... Code & Bugs"

[+2] [2009-09-15 12:28:36] Ramin

Everything is computable!

So you believe in "fate" and not in "free will" :) - epatel
Sure, but no one actually WANTS the set EVERYTHING, they only want the subset of that that actually answers their question! - Brian Postow
(4) Turing disagrees. - outis
[+2] [2009-09-12 14:06:21] Tristan

I have one:

Don't loose your knowledge with a lot of information.

I don't get it. And you probably mean "lose" instead of "loose". - sblom
Actually, it can go either way, methinks. - ldigas
[+2] [2009-07-22 13:55:07] n002213f

Altered version, the popular:

[+2] [2009-10-20 17:36:05] Ether

"Errors, like straws, upon the surface flow; He who would search for pearls must dive down below."

John Dryden

[+2] [2008-09-16 18:51:12] Brent.Longborough

Not really programming, but I also like:

I think there's a world market for about five computers

(attr. Thomas J Watson Senior, 1945)

[+2] [2008-09-16 10:21:53] Jean-Pierre Rupp

There's more than one way to do it

Larry Wall about Perl

[+2] [2008-09-16 21:23:56] akr

There is no problem in computer science that cannot be solved by another layer of abstraction... -- Dave Marples

[+2] [2008-09-17 09:19:31] Joshi Spawnbrood

"Try It Now...."

another anonymous programmer

[+2] [2008-09-17 01:30:04] titanae

" high cohesion and low coupling [1]", I have no idea originally said it, but its so true.


[+2] [2008-09-22 11:22:22] Scottie T

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 [1] accidents [2].

-Nathaniel Borenstein


[+2] [2008-09-22 11:33:10] user12933

There is always one more bug!

[+2] [2008-09-19 19:17:54] Gustavo Carreno

Very old one:

Real programmers do: copy con

[+2] [2008-09-18 21:04:37] Chris Bartow

"The first time God created the world, it became a total mess. So God scraped the whole thing and started again, and the big thing we learn is that after six days, God shipped." - Dan Bricklin

[+2] [2008-09-18 21:54:10] user18282

This quote directly from The Six Dumbest Ideas in Computer Security [1] - I'm sure it's been stated by others in other similar terms... A lesson for the managers:

"It is often easier to not do something dumb than it is to do something smart."


[+2] [2008-09-18 23:06:26] Martin Vobr

Jamie Zawinski:

Every program attempts to expand until it can read mail. Those programs which cannot so expand are replaced by ones which can.

[+2] [2008-09-18 02:57:44] Steve Wranovsky

"As a rule, software systems do not work well until they have been used, and have failed repeatedly, in real applications." -- Dave Parnas

[+2] [2008-09-17 13:22:07] Martin Spamer

When behaviour can be adequately explained by incompetence, it is pointless to assume a conspiracy

[+2] [2008-09-26 21:04:20] Carra

The use of COBOL cripples the mind; its teaching should, therefore, be regarded as a criminal offence.

[+2] [2008-09-26 21:05:31] André

Not my favorite, but I like it as well and it wasn't posted so far:

``The great thing about mod_rewrite is it gives you all the configurability and flexibility of Sendmail. The downside to mod_rewrite is that it gives you all the configurability and flexibility of Sendmail.''

-- Brian Behlendorf
Apache Group

[+2] [2008-09-24 05:20:12] Andrew Swan

Do or do not; there is no "try".

-- Yoda

Oh yes there is.

-- James Gosling (unless I just made that up)

[+2] [2008-10-01 11:26:43] Russell Myers

"The goal is to deliver clean code that works -- now." -- Kent Beck

[+2] [2008-10-02 21:13:00] Alan De Smet
"...basically, avoid comments. If your code needs a comment to be understood, it would be better to rewrite it so it's easier to understand." - Rob Pike, "Notes on Programming in C" [1], February 21, 1989

A lot of code would be better if programmers kept this creed. Comments are all too often a crutch for bad code. And, of course, if your code is easy to understand sans comments, there is no risk of the comments and the code diverging.


(4) comments are often required to indicate WHY you are doing something instead of WHAT it is that you are doing. In that sense, I would say comments are necessary. But I do understand the idea behind the saying. The WHAT part of the code should not need comments. - Mostlyharmless
(2) Pike is wrong. This might be true if everyone who would ever read the code would be a genius in said language. There are project managers, new hires, the guy maintaining the code when the language becomes a legacy language(as C now is), etc. - WolfmanDragon
I agree with WolfmanDragon. If code didn't need any comments, it would be English (or the viewer's native language). The fact that it isn't in English means judicious use of comments may have value. And even stuff written in English isn't always understandable. - Bernard Dy
+1 for need to explain WHY. - Joshua Carmody
(1) Most of my comments indicate why something was done. WHY? Because a lot of the time I'm integrating with third party systems that have "interesting" ideas about how things work. One I'm working on at the moment looks like what I'd imagine a web service would look like if someone explained it to a small child, who in turn explained it to the developer that implemented it. - Colin Mackay
I prefer another statement of this that is also (more or less) in this list: when you are about to write a comment, ask yourself if you can rewrite the code so the comment is not necessary. If you can, do it. If not, you need the comment. - Permaquid
[+2] [2008-10-15 21:13:44] roosteronacid

Launch crap. But launch!

[+2] [2008-10-15 21:42:53] roosteronacid

If it was hard to make, it has to be just as hard to use. (Loosely translated from Danish).

(4) Actually, this is bullocks - making easy to use software is very hard! - Software Monkey
[+2] [2008-10-16 20:55:42] Dan Esparza

I have 3 quotes to offer:

"The function of good software is to make the complex appear to be simple." -Grady Booch

"Intellectuals solve problems; geniuses prevent them." - Albert Einstein

Three Rules of Work:

  1. Out of clutter find simplicity
  2. From discord find harmony
  3. In the middle of difficulty lies opportunity.

-Albert Einstein

[+2] [2008-10-08 15:59:09] community_owned

The use of COBOL cripples the mind; its teaching should, therefore, be regarded as a criminal offense.


If you don't fail at least 90 percent of the time, you're not aiming high enough.

Alan Kay

The whole letter is worth reading: - Federico Ramponi
[+2] [2008-10-10 16:57:51] umnik700

it works on my machine

[+2] [2008-10-11 13:41:47] Federico Ramponi

I believe the hard part of building software to be the specification, design, and testing of this conceptual construct, not the labor of representing it and testing the fidelity of the representation. We still make syntax errors, to be sure; but they are fuzz compared to the conceptual errors in most systems. If this is true, building software will always be hard. There is inherently no silver bullet.

From The mythical man-month

[+2] [2008-10-12 18:28:40] SCL

Lisp programmers know the value of everything and the cost of nothing

[+2] [2008-10-01 14:37:35] philippe

There is always one more bug - Lubarsky's Law of Cybernetic Entomology

[+2] [2008-10-05 07:16:24] Saif Khan

Here is mine

Meet the deadline and we'll get another client!

[+2] [2008-10-05 07:38:53] Toybuilder

Niklaus Wirt gave a talk at my school and told one of his jokes -- Europeans call him by name ("Nik-lous Vert"), while Americans call him by value ("Nickle's Worth").

[+2] [2008-10-02 21:47:18] Causas

Web Development is a lot like kickboxing: You have to watch your cookies

[+2] [2008-09-15 19:40:19] typeseven

The source is the documentation.

[+2] [2008-09-15 19:49:44] Penguinix

A programmer that is 10 times better than another will probably be happy making only 3 times as much - Paul Graham

[+2] [2008-09-16 04:44:15] Brent.Longborough

The programming language [abc] was invented so that any idiot could program a computer, and, as a result, many do.
(Unknown author)

Plus a variant of the Omnipotence Paradox:

Can God write a Program so complex that He cannot debug it?

[+2] [2008-09-13 23:45:39] SCFrench

Any problem in computer science can be solved with another layer of indirection. But that usually will create another problem. -- David Wheeler

[+2] [2008-09-12 20:47:07] Jake Hackl

Re: analyzing requirements.

"Never always; rarely never."

[+2] [2009-11-23 23:58:57] Tommy McGuire
We reject kings, presidents and voting. We believe in rough consensus and running code.

-- David Clark

Be conservative in what you send and liberal in what you accept.

-- John Postel

(1) Mhm John Postel, that was very stupid. Look at today's html. - Kugel
[+2] [2009-11-02 15:41:46] bludger

The function of good software is to make the complex appear to be simple.

[+2] [2009-12-11 21:21:28] CesarGon

The future will be like the past, because in the past the future was like the past.

(can't remember the author)

Especially true in estimation scenarios and in any situation where you act as if you had a crystal ball. Rings a bell? :-)

IMO this is the best one on this first page, at least :) - Nick Wiggill
[+1] [2008-09-16 06:23:55] Dark Shikari
<pengvado> making an alpha product into final is easy
<pengvado> the hard part is adding features so that it stays alpha

I've collected a whole lot of Bash-like programming-related quotes from a certain developer here [1]. Some may be amusing.


[+1] [2008-09-15 21:37:53] Terhorst

Everything always takes twice as long and costs four times as much as you planned.

[+1] [2008-09-15 12:43:22] Gern Blandston

There's a fine line between being on the leading edge and being in the lunatic fringe. - Frank Armstrong

[+1] [2008-09-12 12:19:53] botismarius

Something like '640K (bytes RAM) ought to be enough for anybody' :)) (Bill Gates)

(5) "I keep bumping into that silly quotation attributed to me that says 640K of memory is enough. There's never a citation; the quotation just floats like a rumor, repeated again and again. " -- Bill Gates,1283,1484,00.html - Ed Guiness
(1) Is he suggesting that he didn't make a silly assumption based on the capabilities of the CPU he was coding for? In that case, we're left with two other possible explanations for the 640K limit: a) He did it for shits and giggles; b) He wanted to retard the development of the PC by about 10 years. - Ant
(1) No, the reality is far worse - he was coding for a 16 bit processor, which already had paging issues to deal with more than 64k of RAM, and the BIOS and peripherals needed about 384k, and the processor could only physically handle 1MB. - Adam Davis
The memory map of the IBM PC was decided by IBM, not by Microsoft. - Paul Tomblin
I think the point to the first comment is that BillG never said it... It is a cult belief that he did, but he didn't. - Jason Short
His machines asks him "Do I know you? - infant programer
[+1] [2008-09-17 13:44:26] devinmoore

It's not entirely a programming quote but it's still a classic: "VAXen, my children, just don't belong some places". (Jack Harvey, 1989)

[+1] [2008-09-16 21:08:44] CindyH

In computer science, we stand on each other's feet. -- Brian K. Reid -- Holton, Gerald

[+1] [2009-09-23 15:18:06] Digitalex

[...] and the three of us spent one afternoon a week working, talking, and drinking beer at Dijkstra's house. The algorithm emerged from one of those afternoons. I think I was its primary author, but as I mention in the paper, the beer and the passage of time made it impossible for me to be sure of who was responsible for what.

Leslie Lamport, on his paper about proving the correctness of multiprocess programs [1].


[+1] [2009-09-23 08:49:47] williamtroup

Life is like a set of development methodologies, there is always more than 1 way of doing it.

[+1] [2009-09-23 16:33:18] Rachel

Software isn't the only kind of structure that changes over time.

[+1] [2009-05-18 14:58:02] Jonas

There is no royal road to geometry.

Euclid [1]


How is this related to programming ? - Yassir
(1) @Yassir There is no royal road to programming. - mwcz
@mwc: with that i agree :d - Yassir
[0] [2009-05-06 05:06:10] backslash17

Completly happiness is utopic, but getting paid for doing some lines of "only you know what" it's almost the the same. The problem arises when neither you know what these lines were for! :)

[0] [2009-02-13 21:14:28] Edwin

About Documentation:

Use the force: read the code!

(4) err, shouldn't it be "use the source, Luke" ? - orip
[0] [2008-09-29 23:01:09] Alan

from Larry Wall in Perl manpage

Perl is at the mercy of your machine's definitions of various operations such as type casting, atof() and sprintf(). The latter can even trigger a coredump when passed ludicrous input values.

[-1] [2009-06-12 19:33:31] Andrew Siemer

"All your base are belong to us!"

(3) -1 what has this got to do with programming ? - ldigas
You will have to look here to understand: This is super old school (1991 :P) so if you have never heard it might not be that old! - Andrew Siemer
I'm quite older than that. Still don't see what it has to do with programming (but don't worry, I can't downvote you more than once ;) - ldigas
(1) Base 2 or base 10 ? All of them ! - e-satis
[-3] [2009-10-05 05:45:39] Rachel

Application written in Java is Platform independent but Version dependent

This quote came from our Manager because Java is not backward compatible and so Application running on 1.5 needs to be port at client side on java 1.5 only and if it is ported on java 1.6 than it would not run properly and would get some wierd things happening.

(8) This is completely wrong, with the possible exception of some very few edge cases. In my experience, Java has an excellent record of backward compatibility. - Software Monkey
Perhaps in most cases, but I can attest to being bitten by this in the public education sector when a large application failed after routine java updates on the desktop... - Bart Silverstrim