tags:

views:

153432

answers:

636

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 finns i Emacs" (in Swedish). This basically means "God is in Emacs". Still laughing about it here :) What he meant was that a function "gud is grand-unified-debugger" is in Emacs.

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

+41  A: 

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

-- David Wheeler

Greg Hewgill
... 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
except performance. All performance problems can be solved by removing a level of indirection
Mendelt
The rest of this quotation is "... but that creates another problem".
joel.neely
This quote is attributed to David Wheeler: http://en.wikipedia.org/wiki/David_Wheeler_(computer_scientist)
Rob Walker
Anyone who believes this has never called customer service.
allyourcode
+38  A: 

You can't solve social problems through technical means.

Greg Hewgill
Except, of course, with facebook.
John Gietzen
Have you read "Here comes everybody" by Clay Shirky? He basically says the opposite of that.
chakrit
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
+178  A: 

The classic:

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

Vaibhav
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: http://www.thinkgeek.com/tshirts/frustrations/5aa9/
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
"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
"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
I can understand binary and get laid. Stackoverflow?
bdwakefield
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
Am I the only programmer who really hates this joke? (Just my opinion.)
j_random_hacker
@j_random_hacker: only after normal people figured it out and thought it was hilarious.
SnOrfus
All your base are belong to us.
Andrew Swan
+667  A: 

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

-- Jamie Zawinski

harriyott
Just search for "regex" on this site and you'll find many examples of this!
Greg Hewgill
Yes, I see what you mean!
harriyott
Bitching about regex is like bitching about sql. I LOVE REGEX, AND IF LOVE IS WRONG I DONT WANNA BE RIGHT!
Will
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
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
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
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: http://regex.info/blog/2006-09-15/247
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
"Some people, when confronted with a problem, think "I know, I'll quote Jamie Zawinski." Now they have two problems."http://twitter.com/diveintomark/statuses/1249729494
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
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 http://regex.info/blog/2006-09-15/247
cletus
mandatory XKCD: http://xkcd.com/208/
alexanderpas
Minor correction: "mandatory XKCD" should read "obligatory XKCD." :)
Parappa
This is so true :(
MyGGaN
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
+321  A: 

"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

Galwegian
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
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
If you consider what way MS chose to apply this wisdom, then you should be very glad that they don't build aircrafts.
Brian Schimmel
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
@MikeRobinson - Yes, but the crashing would be ... more problematic? :)
romandas
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
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
I hate that Dijkstra quote. To me, this exposes ignorance on his part. I started as a BASIC programmer.
John Gietzen
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
@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
The 640K quote is fake.
Andrew Grimm
@bubbat, Dijkstra was not a student when exposed to BASIC.
Thorbjørn Ravn Andersen
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
Bill Gates never said that: http://groups.google.com/group/alt.folklore.computers/msg/99ce4b0555bf35f4
zumalifeguard
+334  A: 

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

Graeme Perrow
Yogi Berra, I believe
Chris Upchurch
I love this quote :)
GateKiller
I prefer: "The gap between theory and practice is not as wide in theory as it is in practice"
averisk
this is as funny as it is true.
Here Be Wolves
This is one great quote, I put in my messenger status!
Shimmy
Excellent. Very funny.
John Gallagher
According to http://en.wikiquote.org/wiki/Yogi_Berra, this is __not__ a Yogi Berra quote.
Graeme Perrow
Wikiquotes has it as unsorced for Yogi Berra, as Graeme points out, but also for Jan L. A. van de Snepscheut http://en.wikiquote.org/wiki/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
Although great, not a programming quote. This applies to everything.
ssn
+181  A: 

From SICP

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

John
always by E. W. Dijkstra
Andrea Ambu
I like this one
Trap
I think I'm going to start including this in code reviews ;)
Justin Johnson
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
+232  A: 

"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

seanb
An expert in a field is someone who can, by just doing something, convince you that you can as well.
BCS
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
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 Meister
“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
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
+310  A: 

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 for some other good ones.

Pev
Hoare is a legend. I've seen him speak in person, and he truly knows what he's talking about.
Rich
This definition seems to be related to obfuscation contest ;)
Ast Derek
+32  A: 

Beware of programmers who carry screwdrivers.

-- Leonard Brandwein

Jonathan Webb
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
Seems to me a screwdriver would be the mark of an experienced programmer.
Kyralessa
+537  A: 

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

harriyott
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
Finally, politics in words I can understand.
Wyatt
I love this one.
moffdub
Sad but true. If I were in Baghdad, I would not be amused.
Mike Dunlavey
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
An unhandled WMDNotFoundException was thrown by Baghdad. Would you like to impeach this president? [y/n]
annakata
Hah - wish I could +1 comments, annakata!
Erik Forbes
@annakata: FYI, that exception is handled by EnergyLobbies subsystem with an empty catch block!
utku_karatas
not funny >:(
hasen j
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
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
Resource acquisition should be done during initialization, not destruction.
ctd
@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
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
@T Pops, "enemy" for you, homeland for me. Equating her with Hitler doesn't help you know.
hasen j
That's freaking awesome.
Ducain
@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
Lol at all the fucking liberals complaining.
Pierreten
@T Pops, that would be "Berlin", not "Hitler".
Thorbjørn Ravn Andersen
+407  A: 

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;

  • Any sufficiently advanced magic is indistinguishable from a rigged demonstration.
  • Vi is a subset of evil
  • The difference between theory and practice is smaller in theory than in practice.
  • There are only 3 numbers of interest to a computer scientist: 1, 0 and infinity
Unsliced
Like the Cory Doctorow one!
harriyott
Issac Asmimov is so correct
Teifion
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
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
Don't forget NaN!
gnovice
I've always heard the last one as 0, 1, and many.
Bill the Lizard
"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
+1 The Asimov one is one of the most important ones in Science in general.
Marco van de Voort
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 even though I hate the first one.
John Gietzen
Vi is a subset of evil: Richard Stallman
Diones
Funny you should mention **austism** -- see http://www.computerworld.com/s/article/9072119/Asperger_s_and_IT_Dark_secret_or_open_secret_
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
It should have been: 1, 0, and FileNotFound
Ma99uS
+144  A: 

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

epatel
hell yeah as the universe is winning...
Rodrigo
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 http://www.phrases.org.uk/meanings/74850.html
epatel
THe first quote is brilliant
Colin
+1 for shakespeare
Irfy
+259  A: 

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

Donald Knuth

Tyler
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
Beware of my proof, for I haven't proved it yet.
hasen j
@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
+193  A: 

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

Potential Source as a comment to 'The Future of XML'

Blorgbeard
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
That works for Test driven development too
Diones
I think it might apply to json more... a lot less stuff in the markup.
CodeJoust
+76  A: 

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

harriyott
It never really is though...
uzbones
Oh uzbones :'( Had to giggle though :)
j_random_hacker
...and without errors
Jason
Free sex??? How it's possible?
João Vieira
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
Evgeny
Woody Allen: “The most expensive sex is free sex.”: http://www.predictablyirrational.com/?page_id=129
allyourcode
@João Vieira Good question... \m/
Microkernel
+73  A: 

"Profanity is the one language all programmers know best"

Geir-Tore Lindsve
+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
+1070  A: 

Hofstadter's Law:

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

Blorgbeard
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
To understand recursion, you first need to understand recursion :)
Ilya Ryzhenkov
This is great! +1
Jason Bunting
I predict this comment thread will be longer than I predict.
flicken
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
My brain just did a stack overflow.
Wyatt
@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. http://en.wikipedia.org/wiki/G%C3%B6del,_Escher,_Bach
Peter Rowell
This statement is false
Charles Bretana
Gotta love the recursion.
felideon
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
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
To understand recursion, google it http://www.google.com/search?q=recursion
weazl
You could say something similar about my personal budget.I always spend more money than I have accounted for.
JohannesH
@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
+674  A: 

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

harriyott
Funny because it is true.
toast
CarPet is the driver ;)
Ilya Ryzhenkov
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
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
or what about Grape to Grapefruit, or Pine to Pineapple.
動靜能量
YES! I have to tell this to designers and marketing all the time.
Justin Johnson
@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
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
...or what Carp is to Carpet.
Pedery
and gwt makes them meet ....
Salvin Francis
My car has carpet inside.
Brad
For the javascript lovers: You don't call Javascript Java just like you don't call your Country a ...
lojack
Java is to Javascript as lightning is to the lightning bug (adapted from Mark Twain).
Paul Clapham
One day the magic flying carpet will be faster than your Ford!
overboming
+43  A: 

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

Josef
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
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
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
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
+139  A: 

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

-- John Ousterhout

Mr Shark
For some systems, it is the other way around.
Kevin Panko
+946  A: 

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

-- Rick Osborne

asksol
make it so bad he will die of shock before the second screen :)
BCS
Great one, that should be on every programming IDE splash screen.
Rismo
I'd feel sketchy posting this one up at work...
cdleary
Rick Osborne or Damian Conway? http://stackoverflow.com/questions/58640/great-programming-quotes#61375
JB
this one may cause panic :o)
spinodal
This is my new favourite quote.
Rich Adams
Or John F. Woods, 1991-09-25? http://groups.google.com/group/comp.lang.c++/msg/85b64e464aed84a0
JB
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
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? http://www.softwarequotes.com/showquotes.aspx?id=617http://www.devtopics.com/101-great-computer-programming-quotes/
Hace
I AM that violent psychopath!!
DJTripleThreat
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
+6  A: 

To Err is human, to Debug is Divine...

bedbuffer
+37  A: 

"Simplicity is prerequisite for reliability." -Edsger Dijkstra

Rik
I like it. But how come it is programming quote?
aartist
because Dijkstra said it, I'd guess
Ty W
+41  A: 

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

Another good website: "Quotes about Tech Writing"

FrankS
Code doesn't lie Comments Do !
Yassir
+118  A: 

Dennis Ritchie

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

John
This is true in various areas of physics also.
David Thornley
"What I cannot create, I do not understand" - Feynman
Marco Mariani
+143  A: 

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

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

macbirdie
Hah! If only it were used more often!
harriyott
i can't stop laughing !!!!
Yassir
My kidney ruptured!!!
Janie
It took me ages to figure out what that actually said! :)
Lucas Jones
+561  A: 

It works on my machine.

Anonymous programmer

Gulzar
Now to be replaced with "It works on [browserX], why don't you use that?"
Teifion
But we aren't shipping your machine to the customer
cnu
Jeff has a whole line of products about this one:http://www.cafepress.com/codinghorror/
Jason Jackson
Should be attributed to an anonymous lazy programmer.
eleven81
Should be attributed to *all* programmers.
Aardvark
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:http://www.programmer-tshirts.com/
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
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](http://xkcd.com/583/)...
ircmaxell
+46  A: 

Java: Write Once, Debug Everywhere

John Meagher
Can apply to JavaScript (a version by browser vendor! and more...) and even worse to CSS.
PhiLho
Java: Write Once, Run Maybe
Krzysztof Koźmic
+474  A: 

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

--Edsger Dijkstra

Bill the Lizard
Edsger Dijkstra is my hero :)
Robert Gould
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
It can be referred to as enbugging.http://www.ccs.neu.edu/research/demeter/related-work/pragmatic-programmer/jan_03_enbug.pdf
uzbones
Programming is like sleeping with open window - bugs will find their way inside without your help.
Kuroki Kaze
"We produce two things for the company: buggy code and bug fixes." - me
Arkadiy
it's not a bug, it's a feature! ;)
Marcus Lindblom
+1  A: 

Something like '640K (bytes RAM) ought to be enough for anybody' :)) (Bill Gates)

botismarius
"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 http://www.wired.com/news/politics/0,1283,1484,00.html
Ed Guiness
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
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
+1319  A: 

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

-- Edward V Berard

Adam Davis
hey, great one! :D
Rodrigo
Most excellent quote!!
Jere.Jones
I've never heard that one before but I liked it. So true...
spinodal
+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
first time and great
Robert Gould
It's my wallpaper for sad times :)
furtelwart
brilliant! one of the best quotes I've ever seen!
Mecki
Great quote. I believe I first stumbled upon it when reading "Agile Estimation and Planning."
Krzysztof Koźmic
definetelly the best!!
Ricardo Acras
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
Simply great, I love this one
Prashant
haha great quote :)
instanceofTom
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
I love it! Sending that quote on to a few people...
Ed Schembor
fantastic! i'm lovin it.
Raj More
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
The best quote i ever seen in my life...
Ram
+404  A: 

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

Alan Kay

David Mohundro
I wonder if Stroustrup would tag this as 'offensive' if he was on SO
Sergio Acosta
Who cares? I think Alan Kay has precedence here ;-)
Mike Stone
He is on SO apparently. See Jeff's posts on codinghorror.
Kaius
he is 100% right !!
Yassir
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
This quote is good enough to repeat.
Jurily
This one looks like Stroustrup: http://stackoverflow.com/users/109934
Hippo
+136  A: 

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

Tall Jeff
nice self-fulfilling prophesy there!
Tim Stewart
The sooner we fall behind, the more time we'll have to catch up.
Joe White
Love this subtle little one :)
j_random_hacker
+89  A: 

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.

Pat
"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
One of the most misunderstood quotes in programming, by the way.
Svante
@DGentry: The quote is entirely Knuth's; the attribution (his own) to Hoare is an error. See http://shreevatsa.wordpress.com/2008/05/16/premature-optimization-is-the-root-of-all-evil/
ShreevatsaR
@Svante: True, but avoiding the premature optimization is at least less likely to do damage that can't easily be fixed later.
kyoryu
+1 for the full quote.
peterchen
@kyoryu: Design is one of the earlist stages, and with the biggest optimization potential. Premature?
peterchen
You can make anything you say sound more intelligent if you attribute it to Benjamin Franklin. - Benjamin Franklin
Jason
+422  A: 

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

Aardvark
This statement is a basic truth of the universe
WolfmanDragon
Agreed, its one of my maxims as well
Robert Gould
Beautiful quote. I've heard it in reference to software many times, but didn't see attribution to Exupery before. Thanks.
Bernard Dy
You got my last vote of the day. Beautiful
johnc
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.
Zenham
Reminds me of Scheme Specification.
kunjaan
Nice. I remember one beautiful book by Exupery.
pymendoza
+486  A: 

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

Pat
omg, this sounds so true to me...
Spikolynn
rarely have such true words been written
Bob The Janitor
+1 from a practitioner of great and insidious evil.
Chris Lutz
Superb! Amazingly, I practice both evils :)
MaxVT
Haha. That's hilarious.
the_drow
that's pure poetry!
jess
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
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
+889  A: 

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.

Graeme Perrow
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
Unless you have smartness 0!
Martijn
@Martjin: in which case both debugging and coding are fruitless endeavours! :(
Esteban Brenes
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
@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
Serious point - debugging tools have got a lot better since those days.
Daniel Earwicker
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
@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
Unless you're John Skeet!
DoxaLogos
Unless you have infinite smartness! Oh, DoxaLogos already wrote that.
TonJ
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
+820  A: 

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

Pat
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
Cannot be.. the math does not work out. 90%+90% != 100%!
Hao Wooi Lim
@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
The edit is wrong, can someone with enough karma revert it? It should be 90% + 90%, hence the joke. See here: http://en.wikipedia.org/wiki/Ninety-ninety_rule
Alconja
Now i know, why the windows progress bar behaves like it does!
Arne Burmeister
Oh... I get it... you meant as a joke
Radu094
The quote is good, but it's even funnier reading Hao's comment and the edit history.
Ash
+642  A: 

Bjarne Stroustrup 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

David
I love the second quote. It's certainly true when applied to cell phones these days.
RobH
The first quote is just an excuse for making C++ suck so bad
hasen j
agreed with hasen, that's a lame way to respond to criticism.
Ali
It may be a lame excuse, but it's still true - there will be complaints about any language. Even Python.
Branan
HAHA, the second one is just perfect!
Tuoski
+1 for the second one.
Angkor Wat
@Branan: especially python and it's white space. Harumph... Me - just upset I have to learn Python.
Chris Kaminski
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
+119  A: 

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

Matt Haughton
+36  A: 

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
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
“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
+42  A: 

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.

Chris B-C
The Pragmatic Programmer quotes this too.
Dan
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
Imagine my surprise when one day, select() was broken.
Paul
More like 499 of 500 times it's true.
kyoryu
+30  A: 

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)

Matt Haughton
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
+363  A: 

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

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

Maximilian
Not really a joke but a statement of fact.
moffdub
Debuggers don't remove the bug, they hold it still so you can stomp on it.
zaratustra
@moffdub - Agreed, and this is not a jokes thread
Guge
@mGuge Quotes can be funny and still be quotes
Justin Johnson
+8  A: 

Not sure of the origin but:

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

Brian Stewart
An interesting (but short) wikipedia article suggests it was by Dr. Theodore Woodward, a former professor at the University of Maryland:http://en.wikipedia.org/wiki/Zebra_(medical)
Adrian Mouat
I have attributed it to :Hunt and Thomas, in The Pragmatic Programmer
TheZenker
... unless you're a zebra ;)
MrZebra
... unless you live in Africa.
Software Monkey
it was also mentioned once on House MD talking about diagnostic medicine
advs89
+431  A: 

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

-- E. W. Dijkstra

sock
yes!!! Got a letter published in the newspaper on the back of that one...
HenryR
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
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
@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
@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
Here's another: "The purpose of computing is insight, not numbers." -- Richard HammingThe 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
However, astronomy isn't called "Telescope science".
Daniyar
+11  A: 

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

HigherAbstraction
duplicate of another answer with way-higher upvotes
Shachar
+528  A: 

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

Thunder3
This truly an enlightening quote from a great character.
Vicent Marti
One of my favorites too!
Arthur Thomas
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
I love how people wrote back then!
kurious
Many banks run their business on that principle.
TrickyNixon
BTW, he was asked that question "[by members of Parliament]".
ShreevatsaR
This explains much, ShreevatsaR.
Erik Forbes
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.
I guess he answered in both cases actually "shit in, shit out"
Mauli
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:http://sydneypadua.com/2dgoggles/comics/client2jpgs/seat.jpg
mckeed
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
@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
+293  A: 
Howler
Excellent limerick. You may have gotten it from limerickdb.com.
apandit
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
@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
@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.. http://limerickdb.com/?282 Still no cite, though.
Howler
Yeah, the lines of a limerick are AABBA.
Cristián Romo
My email signature for over a year now has beenwhile (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
@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
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
@Cristián Romo: There are 5 members in ABBA now? Who da fifth? ;)
Sani Huttunen
"while not asleep, sheep plus plus" is probably how you were supposed to pronounce it.
MiffTheFox
`sheep` is not a complex object, it's an unsigned integer.
Joren
Doctor, I can't pronounce sound '@'.
Dmitriy Matveev
http://xkcd.com/571/
Fozi
Joren, you never know, it's C++
finrod
+335  A: 

"Never trust a programmer in a suit."

Anders Sandvig
Well that's why I don't wear my suit *properly*...
Sung Meister
They're called "consultants" :)
harto
@harto Sometimes they are called "founders" ...
chakrit
What's a suit ?
johnc
I'm a consultant and i'm a better programmer than some developers I know! (and i hate wearing a suit!)
Sk93
unless they're wearing their birthday suits
warren
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
"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
Joke: What do you call a programmer wearing a suit? - A defendant
Sean
+10  A: 

"Fight code entropy." -- John Carmack

tephlon
+17  A: 

See Alan Perlis' epigrams in programming:

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

Mark Cidade
+121  A: 

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

Pascal
Haha the last made me ROFL
the_drow
that is why we don't use it anymore :p
Yassir
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
+89  A: 

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

Juan Manuel
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.
Martinho Fernandes
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
Was the flood leaky code.
PeteT
@Chris: But he did! See http://xkcd.com/224/
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
+104  A: 

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

Prakash
Are you saying I shouldn't be programming?
recursive
Are you saying I should use the regular oven?
JohnFx
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
Owning a computer without programming is like playing Tetris without knowing you can rotate the tetrominoes.
Stringer Bell
@stringer your analogy became lost on me as soon as you called those blocks "tetrominoes."
Carson Myers
I only use the phone. It gives me pizza.
Kevin Laity
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
+14  A: 

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

People who deal with bits should expect to get bitten

Matt Haughton
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
+19  A: 

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

Juan Manuel
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
+3  A: 

Niven's laws:

  • No technique works if it isn't used

  • Ethics change with technology

  • "F × S = k" the product of freedom and security is a constant
Raz
+15  A: 

There is no IRL, only AFK

-- Unknown

Sam Wessel
what do those two acronyms stand for?
Nathan
If you have to ask, you'll never know
Sam Wessel
@Nathan, In Real Life and Away From Keyboard.
Marius Gedminas
+18  A: 

"Plan to throw one away; you will anyway"

  • Brooks' The Mythical Man-Month
laurie
If you plan to throw one away, you'll end up throwing two away.
Dour High Arch
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
even if you don't throw your code away, you'll at least throw your keyboard anyway
Lie Ryan
+55  A: 

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.

Paul Wicks
+21  A: 

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

and

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

Rob Wells
+30  A: 
Antti Sykäri
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.
+19  A: 

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

JasonS
Also nice: lp0 on fire - http://en.wikipedia.org/wiki/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
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
For those not getting it - this is a reference to http://en.wikipedia.org/wiki/Office_Space
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
paper is one letter less, mail is two letter less, A4 is four letter less. what's eight letter less?
Lie Ryan
+5  A: 

Two protons walked into a Black Hole.

Peter Bromberg
+145  A: 

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.

scunliffe
I've heard this about making processors too - "cheap, fast, good - choose 2"
palmsey
Right on, right on!
moffdub
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), http://tools.ietf.org/html/rfc1925
Martin Carpenter
I remember this as "cheap, fast, reliable" pick 2.
Matt Brunell
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
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
I do variations of this kind of three way trade-off all the times.Works in a variety of occasions, try it!
Agos
i actually use this one with my clients to justify price :)
lstanczyk
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
+21  A: 

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

ianix
This is so true!
mcv
+7  A: 

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

Rigth now I can't remember the author..

lurks
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
This is a duplicate.
John Gietzen
+101  A: 

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)

Liudvikas Bukys
+31  A: 

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" };

Redbeard 0x0A
http://en.wikipedia.org/wiki/Lp0_on_fire
BCS
That's going on my next error message.
Martinho Fernandes
This is the first one that made me laugh out loud
RMorrisey
Oh, nothing like backwards compatability :)
Thorbjørn Ravn Andersen
+533  A: 

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

huseyint
It's turtles, all the way down.
JasonTrue
Are you insane? Putting an infinite loop on the site!
Ólafur Waage
I like that, it's very subtle
Lewis
"In order to understand tail-recursion, one must last understand tail-recursion"
Jimmy
Luckily my head has paradox-absorbing crumple zones! ;)
gnovice
No exit point!heh, maybe that is what recursion is all about
Hoffmann
(dictionary)recursion: see "recursion"
Mark
@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.
動靜能量
I feel a great disturvance in the Web, as if a thousand programmers head screamed at a stackoverflow and were suddenly silenced.
voyager
http://www.google.com/search?q=recursion
ç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
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
So who is to credit for this quote?
User1
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
see this: http://stackoverflow.com/questions/58640/great-programming-quotes/59848#59848
Here Be Wolves
that's infinite recursion, and not really infinite as it will blow up the stack in no time.
Petruza
+301  A: 

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

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

dewde
Neither can one in nine months...it takes 2! Shouldn't it therefore be 18?
Adam Lerman
"Nine men" might work better, then
Draemon
I know it as "It takes 9 months to bear a child, no matter how many women you assign to the task."
Dan Dyer
but 10 women can make 10 children in 9 monthes
hasen j
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
Adam- one of the two is a manager, and isn't need for most of the 9 months.
GoatRider
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
If you really stress a person, they can deliver a baby earlier. You *really* don't want to do so, though.
Andrew Grimm
+54  A: 

from the Programmers Dictionary:

recursion: see recursion

Programmer: an organism that turns coffee into software

dangling pointer: see recursion

Raz
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 sdlkfsdlhgygfulkjsashhalhklfirueqopwe.com/dangling_pointer.html
動靜能量
Dangling Pointer: (syn.) Penis
Janie
"A mathematician is a machine that turns coffee into theorems." -- Paul Erdos
Robert Rossney
Oh man, the dangling pointer entry was brilliant; took me a few seconds to get it.
Bob Aman
Similar, from the Computer Contradictionary:infinite loop: see loop, infinite...loop, infinite: see infinite loop
mwc
From the Devil's DP Dictionary: Null, n.
David Thornley
+2  A: 

Re: analyzing requirements.

"Never always; rarely never."

Jake Hackl
+3  A: 

Francis Crick

"God is a hacker, not an engineer. You can do reverse engineering, but you can’t do reverse hacking.”

Rob
+4  A: 

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.

Kibbee
Larry Ostermann got it from a senior guy. http://blogs.msdn.com/larryosterman/archive/2004/03/30/104165.aspx
Ian Boyd
+7  A: 

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

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

Anthony
Both are duplicates.
John Gietzen
+22  A: 

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

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.

David HAust
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
+20  A: 

It works on my machine - anonymous programmer..

@Gulzar

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

Pat
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 http://www.codinghorror.com/blog/archives/000818.html
J. Random Coder
+43  A: 

From http://www.catb.org/~esr/jargon/html/index.html

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.

Alvaro Rodriguez
Then obviously, Knight knew what was going wrong.
Bill Karwin
Thank you captain obvious
Tmdean
I pulled similar stunts on my friends so many times!
Martinho Fernandes
+5  A: 

"on a clear disk you can seek forever"

Soumitra
+81  A: 

Something David Parnas said in an interview:

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.

Will Sargent
This could easily fit well here: http://stackoverflow.com/questions/406760/whats-your-most-controversial-programming-opinion
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
+19  A: 

Waldi Ravens

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

Łukasz
i lol'd (padding to make it 15 characters)
Ian Boyd
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
@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
+31  A: 

"The best code is no code at all."

chakrit
True. One has to understand this deeply.If there is no code, no programmers will have jobs.
aartist
@aartist: Rather, if you can remove code but keep the feature, it's the best coded feature ever. (by appling reuse, frameworks, etc.)
Marcus Lindblom
Raymond Chen's collorary: "The fastest code is the code that doesn't run."
Ian Boyd
+152  A: 

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.

Tyler
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.
But to really understand this, you need to differentiate between the True and False variations of each of the virtues...
kyoryu
+5  A: 

Applies to a lot, but also to software:

Never on schedule, always on time

Jacobbus
+4  A: 

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

warren_s
+20  A: 

My physics teacher used to say:

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

christian studer
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
There were no IT teachers back then. So physics teachers teaching IT stuff was an obvious choice.
christian studer
+6  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.

Return."

--

"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"

Toni Ruža
+3  A: 

"All programming is an exercise in caching." - Terje Mathisen (Found here)

Paul Kroll
+6  A: 

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!

+11  A: 

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

"Eschew obfuscation."
Nathan Long
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
+97  A: 

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.

Mladen Jankovic
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
How is this not the #1 voted answer?
Krisc
Exactly what I am doing now.
Earl Bellinger
+2  A: 

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

SCFrench
+4  A: 

Jeff Atwood:

The real money isn't in the software. It's in the service you build with that software.

David Crow
+36  A: 

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!

grok
+23  A: 

Stroustrup:

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.

theschmitzer
+676  A: 

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

Chris Bartow
+1 for John Carmack
Michael Stum
+1, I hate patent laws. Need to be fixed.
Adam Lerman
Also +1 for the software patents quote :)
Desty
+1, software patents are like patents on math.
grom
+1 for the patent quote. -1 for Diet Coke, though; that stuff is nasty. Coke Zero all the way.
Kyralessa
+1 for patents. I'm glad we don't have this insanity in Europe
Krzysztof Koźmic
I wish I could +10 for John Carmack.
sirlancelot
Kyralessa, fwiw the quote probably predates Coke Zero
simon
Think of a number that nobody else has thought of, and you can own it.
James M.
+INF for John Carmack
Rodrigo
@Kyralessa - One man's food, is another man's poison.
n002213f
#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
+12  A: 

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.

Chris Upchurch
+23  A: 

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

Chris Upchurch
+14  A: 

Phil Reed

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

Chris Upchurch
+17  A: 

Laurence Gonzales

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

Chris Upchurch
+8  A: 

"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).

Brian G
Damian Conway or Rick Osborne? http://stackoverflow.com/questions/58640/great-programming-quotes#58706
JB
...or John F. Woods? http://groups.google.com/group/comp.lang.c++/msg/85b64e464aed84a0
JB
And if it's you who ends up maintaining the code, then the assumption becomes at least half true. :-)
RobH
+6  A: 

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

Farinha
That quote has proven to be harmful when bad programmers (that don't realize it) use it as an argument.
Jj
+74  A: 

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

gdessler
I like Larry Niven's version too: Any sufficiently advanced magic is indistinguishable from technology.
Martinho Fernandes
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
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
+13  A: 
Luke Girvin
It applies to the Java system I work on, too ;-)
quant_dev
+98  A: 

Bruce Ediger

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

talg
Attributed to Bruce Ediger while talking about X interfaces.
moritz
False, the ability to talk to that interface is written in the BIOS
Pablo Marambio
@Pablo: That's not a contradiction.
j_random_hacker
The problem with that quote is that the premise is false: The nipple is not very intuitive, either. Babies have to learn to suckle.
swillden
Replace nipple with breathing =)
gnud
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
@swillden: but they are born with the reflex to suckle (one of the many primal reflexes: moro/startle, suckling, grasping, hand to mouth).
sixlettervariables
+8  A: 

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

Alan
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
+3  A: 

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
+4  A: 

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.

James Simm
+15  A: 

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

Manrico Corazzi
+3  A: 

Linus Torvalds

Talk is cheap, show me the code !

Naseer
+1  A: 

There's a fine line between being on the leading edge and being in the lunatic fringe. - Frank Armstrong

Gern Blandston
+32  A: 

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

Gern Blandston
who said that? thats most of the time a big reason why coding geeks aren't able to come up with a product
Chris
also, duplicate
Marius Gedminas
+2  A: 

Real programmers don't document If it was hard to write, it should be hard to understand!

+4  A: 

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.

realsugar
+3  A: 

I think the collection under http://goit-postal.blogspot.com/2007/12/quotes-5-different-views-on-computers.html 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.").

+5  A: 

"Never change a running system." - widely spread. Well my interpretation is: "Never run a changing system."

+4  A: 

Python: Programming the way Guido indented it (Digital Creations T-shirt slogan at IPC9)

Vinko Vrsalovic
+2  A: 

The source is the documentation.

typeseven
+2  A: 

A programmer that is 10 times better than another will probably be happy making only 3 times as much - Paul Graham

Penguinix
+2  A: 

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
+342  A: 

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

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

scubabbl
This is me at least once a month. I simply can't vote this up enough times!
Dinah
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
+5  A: 

"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.)

+114  A: 

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

Terhorst
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.
Brian Schimmel
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
Not the catchiest quote on here
Xetius
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
And if it's so well written that no bugs could be found, noone would jump in to help.
Lie Ryan
this isn't going to seem relevant at first, but it does come up eventually: http://www.joelonsoftware.com/articles/NothingIsSimple.html
allyourcode
Start small. You ain't gonna need it.
Thorbjørn Ravn Andersen
+5  A: 

Managing programmers is like herding cats.

shoosh
+1  A: 

Everything always takes twice as long and costs four times as much as you planned.

Terhorst
+50  A: 

It's morning already?

Ryan Delucchi
A few years back, I've spent entire weeks without seeing the sun...
Martinho Fernandes
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
Peter Rowell
+8  A: 

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

Ryan Delucchi
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
+42  A: 

"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

Slothman
+42  A: 

Rules for optimization:

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

Michael A Jackson

Ray Hayes
Michael Jackson?
Martinho Fernandes
Not that one, this one... http://en.wikipedia.org/wiki/Michael_A._Jackson
Ray Hayes
+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!orShamone!
ShaunLMason
+10  A: 

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.

Harold Bamford
+4  A: 

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 :-).

Tim Sally
+27  A: 

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

-- Anonymous

+3  A: 

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?

Brent.Longborough
+5  A: 

If you don't have time to do something properly, you certainly don't have time to do it twice!

Stuart Helwig
+34  A: 

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
This is a duplicate
Zuu
+16  A: 

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

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 43folders.com.

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 again

Kevin Conner
+4  A: 

"I've never written the best code I've ever written."

Awesome quote from an old friend.

Jonathan Arkell
+1  A: 
<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. Some may be amusing.

Dark Shikari
+10  A: 

"The Internet? Is that thing still around?"

  • Homer Simpson

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

  • Janet Reno

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

  • Edsger W. Dijkstra
+1 for dijkstra
John Gietzen
+169  A: 

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
Baddie
I've had a lot of programming days like that.
Kyralessa
+85  A: 

'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
Actually, no. A true programmer won't mix up element count and element index ;)
mafutrct
Get your grammar right, it's "A true programmer*s*". ;)
deceze
@deceze: ...what?
Andy Mikula
@Andy: Try reading the first word in deceze's sentence as a hexadecimal number... ;)
j_random_hacker
actually we have 9 fingers
Chris
You are all wrong, most human beings have 8 fingers and two thumbs.You count from 1, you index from 0.
scragar
...so we have 7 fingers.
Sneakyness
Actually, you have 10 digits.
peterchen
+22  A: 

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

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
+4  A: 

Bolton College Lecturer 1988 (name forgotten)

To iterate is human, to recurse divine.

+5  A: 

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"

all2one
+5  A: 

All programmers are optimists

Frederick Brooks, The Mythical Man-Month

Jean Pierre Rupp
+2  A: 

There's more than one way to do it

Larry Wall about Perl

Jean Pierre Rupp
+29  A: 

Easy things should be easy and hard things should be possible

Larry Wall

Jean Pierre Rupp
+3  A: 

"Good web applications should look like trifle."

Cal Henderson - http://www.iamcal.com/

GateKiller
+241  A: 

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

-- Steve Taylor

Ali Parr
+1: I LOL'd literally.
John Gietzen
hahah +1 I laughed loud enough to get peoples attention
instanceofTom
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
Maybe you were sobbing inside because you know it's true...?
Ali Parr
Who is Steve Taylor!!!
Microkernel
Dog, are you referring to C???
Microkernel
http://c2.com/cgi/wiki?ExtraLegsOntoaDog 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!" http://yosefk.com/c++fqa/linking.html#link-3
Dan Moulding
+61  A: 

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

John Wooden, basketball coach

Dala
+1 for helping me win an argument today.
alxp
+4  A: 

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

Henrik Warne
+4  A: 

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

http://twitter.com/sacca/statuses/860432283

agentj0n
+57  A: 
Dougman
In my Software Engineering class, we were taught that this model is incorrect because it overlooks a fourth variable: Features.
titaniumdecoy
Feature is in Good, isn't it ?
e-satis
This one should have a lot more upvotes!
J. Random Coder
Good is what is needed for it to function well, feature is what is needed to sell it well.
Marco van de Voort
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
+44  A: 

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

Matt Haughton
Separated this out from a previous answer
Matt Haughton
+3  A: 

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

Tim
+2  A: 

Not really programming, but I also like:

I think there's a world market for about five computers

(attr. Thomas J Watson Senior, 1945)

Brent.Longborough
+26  A: 
Antti Sykäri
+3  A: 

Richard A. O'Keefe (from The Craft of Prolog, and before that, comp.lang.prolog):

Elegance is not optional.

Ian Dickinson
+5  A: 

"Thou shalt not follow the NULL pointer, for chaos and madness await thee at its end."

--Henry Spencer

Nighthawk
But sending messages to NULL is OK, because what cannot exist will not respond.
Kendall Helmstetter Gelner
+1  A: 

In computer science, we stand on each other's feet. -- Brian K. Reid -- Holton, Gerald

CindyH
+4  A: 

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)

CindyH
+2  A: 

There is no problem in computer science that cannot be solved by another layer of abstraction... -- Dave Marples

akr
+4  A: 

"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)

Paucus
+4  A: 

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

Sleep Deprivation Ninja
+25  A: 

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

+2  A: 

"high cohesion and low coupling", I have no idea originally said it, but its so true.

titanae
+16  A: 

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.

Chris Noe
One of the best!
Auxiliary
+4  A: 

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.

S.Lott
Google had it - Mark Donner, IBM Watson Research Center. http://users.erols.com/blilly/programming/Programming_Pearls.html
Kendall Helmstetter Gelner
An even clearer version of the quote here that's probably the original:http://www.geocities.com/krishna_kunchith/misc/bscs.html
Kendall Helmstetter Gelner
+3  A: 

The goal of Computer Science is to build something that will last at least until we've finished building it.

Christian Campbell
+2  A: 

"Try It Now...."

another anonymous programmer

Joshi Spawnbrood
+4  A: 

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

fuad
+4  A: 

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.

dlat
+2  A: 

When behaviour can be adequately explained by incompetence, it is pointless to assume a conspiracy

Martin Spamer
A: 

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)

devinmoore
+6  A: 

"A fool with a tool is still a fool." (I don't know who originated it, but I believe it is true)

+4  A: 

@Unsliced

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

Henrik Bierbum Bacher
The "rigged demo" one is a riff on Clarke's Law (and an appropriate one)
CMPalmer
+6  A: 

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

Adam Lerman
AMEN! That is SO true!
eidylon
+9  A: 

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

MikeCroucher
And Picasso hadn't even read the Hitchhiker's Guide to the Galaxy!
jan.vdbergh
+6  A: 

"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!

Isak Savo
+3  A: 

Singleton is a misconcept in OOP unless it's used as a misconcepted paradigm for application development.

Unknown.

Thevs
+7  A: 

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

Steve Wranovsky
+73  A: 

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

Steve Wranovsky
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
programming is like sex: all it takes is a little coffee and you can go all night long
Jason
documentation is like sex: when it's good, it's great. When it's bad, it's still better than nothing. :)
Marcus Lindblom
+2  A: 

"As a rule, software systems do not work well until they have been used, and have failed repeatedly, in real applications." -- Dave Parnas

Steve Wranovsky
+391  A: 

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

Keith Bostic

Steve Wranovsky
now THATS the truth!
BBetances
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...
lz_prgmr
Perl is just modem line noise. .$^[email protected]\..9..u!--. [NO SIGNAL]
Cylon Cat
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
"Python is executable pseudocode. Perl is executable line noise." - Thinking in Python by Bruce Eckel
Andre Boos
+4  A: 

"He who hasn't hacked assembly language as a youth has no heart. He who does as an adult has no brain." -- John Moore

Steve Wranovsky
+4  A: 

“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

Steve Wranovsky
+56  A: 

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

Sufficiently advanced incompetence is indistinguishable from malice.

Great. +1 if I still had any votes left...
Martinho Fernandes
+3  A: 

Make It Work Make It Right Make It Fast

John
+69  A: 

Subject: Re: Computers in Science Fiction
From: Steve Taylor
Newsgroups: alt.folklore.computers, alt.history.future, rec.arts.sf.science, 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...

Mafti
+4  A: 

"Software isn't about methodologies, languages, or even operating systems. It is about working applications."

-- Christopher Baus

Mats Wiklander
+4  A: 

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

Henrik Warne
+2  A: 

"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

Chris Bartow
+2  A: 

This quote directly from The Six Dumbest Ideas in Computer Security - 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  A: 

Jamie Zawinski:

Every program attempts to expand until it can read mail. Those programs which cannot so expand are replaced by ones which can.

Martin Vobr
+28  A: 

"Nothing is more permanent than a temporary solution"

Thomas' First Law

I also like:

Fast, Cheap, Reliable: Pick any two.

RET
first one is great!
J. Random Coder
+6  A: 

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

Gastoni
This is a duplicate.
John Gietzen
+165  A: 

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

-Martin Fowler

Jeff Heigl
It's good he didn't say "Good programmers write code any fool can understand", because that's not true. :-)
ShreevatsaR
+2  A: 

Very old one:

Real programmers do: copy con program.zip

Gustavo Carreno
+6  A: 

Flame bait propagated by Slackware lovers:

If you know Red Hat you know Red Hat, If you know Slackware you know Linux.

Gustavo Carreno
+3  A: 

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)
Subtwo
+2  A: 

The most likely way for the world to be destroyed, most experts agree, is by accident. That's where we come in; we're computer professionals. We cause accidents.

-Nathaniel Borenstein

Scottie T
+2  A: 

There is always one more bug!

+6  A: 

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

Midhat
+621  A: 

Linux is only free if your time has no value

Jamie Zawinski

jimmyorr
I don't down-vote, but I think this one is telling ignorance rather than truth.
ypnos
Yeah, it definitely saves me time. Not a programming quote either.
Draemon
Heh, even with modern distros...
Dmitri Nesteruk
"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."- www.gnu.org
SHODAN
windows vista: 300$ , linux: free, this quote, priceless!
hasen j
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
Consuming your time with pointless fiddling costs you freedom as much as it does money.
Ahruman
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
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
an other variant is "Linux is free, free like a puppy"
Bob The Janitor
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
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
Linux is only free if your time has no value. Windows costs both time and money no matter what.-Me
henrikh
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
@bob: yay! puppies! Can I haz ponys now?
voyager
WOW, that's coool :)
Prashant
"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
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
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
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
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
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
@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
+3  A: 

Every dark corner you haven't explored with your flashlight is full of bugs.

Kent Beck and Martin Fowlere in Planning Extreme Programming, page127.

Juha Pohjalainen
+4  A: 

If at first you don't succeed, try/catch, try/catch again.

Chris OC
+8  A: 

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

Chris OC
Sounds like variant of the quote from Isaac Asimov--The most exciting phrase to hear in science, the one that heralds newdiscoveries, is not 'Eureka!' (I found it!) but 'That's funny ...'--
epatel
+3  A: 

If I have not seen as far as others, it is because giants were standing on my shoulders.

-- Hal Abelson

Andrew Swan
+178  A: 

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

Andrew Swan
really funny! but not a programming quote, -1
hasen j
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
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
saying this is not programming related is ignorant
instanceofTom
Some depressingly stupid users on SO...
Janie
this is a great one
Atmocreations
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
When I read it he mentioned those who called him "Herr Professor" - calling him by reference.
David Thornley
Also this is a great quote since Nikolaus Wirth is one of the greatest minds in Compiler Construction to date..
Tigraine
+38  A: 

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

Fred Brooks

Pini Reznik
This is forgotten far too often.
kyoryu
+5  A: 

“The limits of my language mean the limits of my world”

Ludwig Wittgenstein

Pini Reznik
+4  A: 

"I do not fear computers. I fear the lack of them." -Isaac Asimov

Gordon Bell
+39  A: 

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

Parappa
The 'unskilled labor' part might explain a few things.
Sylverdrag
If the labor was unskilled how skilled was the conception?
codeelegance
http://en.wikipedia.org/wiki/It_Takes_a_Village
allyourcode
+4  A: 

Never underestimate the disparity between developer excitement and user apathy.

From this great article.

Bonnici
+62  A: 

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

TheZenker
+3  A: 

"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

Malcolm Groves
+2  A: 

Do or do not; there is no "try".

-- Yoda

Oh yes there is.

-- James Gosling (unless I just made that up)

Andrew Swan
+5  A: 

Never trust a programer who can spel.

Slapout
+6  A: 

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

MattC
+2  A: 

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

Oh well. :(

Micky McQuade
I'm guessing they did, and still downvoted you.
Ty
+2  A: 

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

  • Edsger Dijkstra
Carra
+2  A: 

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
André
+8  A: 

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

Zee JollyRoger
+46  A: 

"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

André
actually it is BSD, not UNIX
Mario
I know it from the Unix Haters Handbook (http://www.simson.net/ref/ugh.pdf) 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
Just for completeness: LSD wasn't invented at Berkeley.
Thomas Bratt
Basel, Berkeley, whatever.
Robert Rossney
+4  A: 

“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

Firas Assaad
+5  A: 

Perilous to us all are the devices of an art deeper than that which we possess ourselves

J.R.R. Tolkien

Hamish Smith
+11  A: 

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

Hamish Smith
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
A: 

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.

Alan
+4  A: 

If it doesn't have to work, we can do it real quick.

-- Watts Humphrey

florin
+135  A: 

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

-- Edsger W. Dijkstra

florin
Excellent observation...
Jason Bunting
I predict that this quote will be debunked in the coming decades with neurological research.
Unknown
Define swim....
Janie
@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
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
... define awareness
Joren
knowing who you truly are, in the cosmos
dferraro
... define knowing
recursive
Consciousness is a funny thing. If you think you understand what it is you haven't thought enough about it.
Adam Luchjenbroers
... define define
Tor Valamo
... define "hoedown"
MGOwen
You guys all understand that the human brain is a physical thing, right? And thus, can be simulated in a computer. See http://en.wikipedia.org/wiki/Church–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
do not upvote this answer: it now has 128 votes.
Here Be Wolves
@Cogwheel - Matthew Orlando: That's been said repeatedly for about 200 years now.
Piskvor
+224  A: 

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

-- Robert Sewell

florin
Ouch that hurts for java fans !
Clement Herreman
Yes, it does, but it's still true. Sadly though, it's true of just about any language though.
Matthew Scharley
@Matthew: My thought exactly.
kyoryu
+16  A: 

It should work!

- a programmer's last words.

Cristián Romo
I thought that was "Ooh, what does this button do?"
Steven A. Lowe
+4  A: 

"Powered by 110000001111111111101110"

-An email signature I saw once

RobS
ha...good one :) C0FFEE
epatel
+2  A: 

"The goal is to deliver clean code that works -- now." -- Kent Beck

Russell Myers
+11  A: 

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

No idea of the source.

philippe
+3  A: 

In effect, we conjure the spirits of the computer with our spells.

From SICP.

Prog
+2  A: 

There is always one more bug - Lubarsky's Law of Cybernetic Entomology

philippe
+7  A: 

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

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

VVS
I used to be in the third group. Never again!
Martinho Fernandes
This is a duplicate.
John Gietzen
@John: Can you post the link? I can't find a duplicate.
VVS
+5  A: 

"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

andyp
+4  A: 

Software Engineering isn't rocket science ...

It's harder

Ryan Delucchi
+2  A: 
"...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", 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.

Alan De Smet
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
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
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
+3  A: 
"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", August 1998
Alan De Smet
+48  A: 

"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 :)

Gustavo Rubio
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
Here, "no offence" actually means "offence meant in a sly way" :D
Here Be Wolves
Don't forget the animals ;)
Kevin D.
that's obviously true for all 'cross platform' languages, not just for java
Chris
@Chris: Of course, you, it's just the original says Java, you can use whatever platform you like (.Net, python, etc)
Gustavo Rubio
Wow, I'll never think of garbage collectors the same way again.
Seth
+3  A: 

"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

http://www.cookcomputing.com/blog/archives/000084.html

http://en.wikipedia.org/wiki/Optimization_(computer_science)

http://en.wikipedia.org/wiki/C._A._R._Hoare

Scott Dorman
+4  A: 

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

KW
+4  A: 

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.

keparo
+11  A: 

My other car is a cdr

Dan Hewett
+2  A: 

Web Development is a lot like kickboxing: You have to watch your cookies

Causas
+14  A: 

Great Larry Wall Quotes:

  • We all agree on the necessity of compromise. We just can't agree on when it's necessary to compromise.

  • And don't tell me there isn't one bit of difference between null and space, because that's exactly how much difference there is.

  • It won't be covered in the book. The source code has to be useful for something, after all...

  • Just don't create a file called -rf.

  • Sex is fun, but it probably doesn't solve all your problems.

  • My assertion that we can do better with computer languages is a persistent belief and fond hope, but you'll note I don't actually claim to be either rational or right. Except when it's convenient.

  • I try not to confuse roles and traits in my own life. Being the Perl god is a role. Being a stubborn cuss is a trait.

And lots more here

mpeters
+35  A: 

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

Jason Baker
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
+12  A: 

From my personal compilation:

“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

Ricardo Cabral
+1 for the quote on dates.
Jonathan Leffler
Yeah, java.util.Date should be buried. No -- burned, dissolved in acid and ejected into outer space.
quant_dev
+4  A: 

Run this in Python:

import this

Anurag Uniyal
and remember to check the source of that module
Federico Ramponi
+3  A: 

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

dimitrisp
+1 Great one. Got a self-made poster of this in my office.
J. Random Coder
+2  A: 

Here is mine

Meet the deadline and we'll get another client!

Saif Khan
+2  A: 

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").

Toybuilder
+14  A: 

"Code never lies, comments sometimes do"

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

philippe
+40  A: 

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

- Phil Karlton

Of the two, I think that Naming Things is probably the most neglected and the hardest.
Furis
+2  A: 

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

Dijkstra

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:http://www.cs.virginia.edu/~evans/cs655/readings/ewd498.html
Federico Ramponi
+3  A: 

Software with no bugs is obsolete

Steven A. Lowe
+72  A: 

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

Cicero

Thomas Bratt
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
There is a nice collection at:http://dangerousintersection.org/2006/04/12/more-time-shorter-letter/
Thomas Bratt
+3  A: 

On LOC: Lines of code are only worth counting, when times as come to delete them.

Rephrased from Warren' answer.

philippe
+8  A: 

I don't know where it came from, but

2B | ~2B, that's FF

xtofl
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
You're very right. In this case, it's about the tiny bits :)
xtofl
+2  A: 

it works on my machine

+2  A: 

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

Federico Ramponi
+2  A: 

Lisp programmers know the value of everything and the cost of nothing

Dawkins
+4  A: 

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

zzamboni
+3  A: 

"The road to wisdom? Well, it's plain
And simple to express:
Err
and err
and err again,
but less
and less
and less."
-- Piet Hein

Maglob
+3  A: 

"Hey, did someone turn off the database?"

John Kraft
+8  A: 

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

Kevin Little
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 http://shreevatsa.wordpress.com/2008/05/16/premature-optimization-is-the-root-of-all-evil/
Simon Nickerson
+2  A: 

Launch crap. But launch!

roosteronacid
+2  A: 

If it was hard to make, it has to be just as hard to use. (Loosely translated from Danish).

roosteronacid
Actually, this is bullocks - making easy to use software is very hard!
Software Monkey
+3  A: 

"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

Marcel J.
+2  A: 

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

Dan Esparza
+3  A: 

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

RazMaTaz
This is a duplicate.
John Gietzen
+3  A: 

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.

RazMaTaz
+10  A: 

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)

RazMaTaz
+21  A: 

Good design adds value faster than it adds cost.

-- Thomas C. Gale

RazMaTaz
Also Joel Splosky (Software development is the art of adding value faster than cost.)
Ian Boyd
+2  A: 

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"

RazMaTaz
It's by PJE, added credit
orip
+6  A: 

My best effort:

"Software is either testable or detestable."

Dov Wasserman
+13  A: 

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: http://xkcd.com/224/
gnud
+4  A: 

Just saw this one:

"I'm not a great programmer; I'm just a good programmer with great habits." - Kent Beck

Owen
+79  A: 

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.

Vijay Dev
how about changing the machine code.
動靜能量
+7  A: 

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

Weinberg’s Second Law

George
This is a duplicate.
John Gietzen
+3  A: 

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.

WolfmanDragon
+4  A: 

A documented bug is not a bug; it is a feature. -- James P. MacLennan

Rontologist
+11  A: 

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

Bill Harlan

jamesh
+2  A: 

"Programming in TSO is like kicking a dead whale down the beach" - Ken Thompson

plinth
+3  A: 

"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

Newtopian
+2  A: 

"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

SomeMiscGuy
+57  A: 

Good programmers never write what they can steal or borrow

-- Jeff Atwood

Ather
simply superb jeff
naveen
I think this originates in Steve Jobs.
strongopinions
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
@ John GietzenSo you wrote your own Regex Engine for Objective-C?
micmoo
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.
angryundead
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. ;)
Marcus Lindblom
@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
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
+14  A: 

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

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

netsuo
+62  A: 

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

Krakkos
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!
deuseldorf
Must be Agile .
tsilb
@BradC it is funny because of how true it is!
Krisc
+3  A: 

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

Krakkos
+6  A: 

"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

David Pike
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
+3  A: 

"I do not care if it works on your system, I am not gonna ship your computer."

Mohit Ranka
+15  A: 

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

naveen
+7  A: 

corollary to Clarke's law:

Any technology distinguishable from magic is insufficiently advanced

This is a duplicate.
John Gietzen
+181  A: 

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

Raz
Wow. That's awesome! Any idea who said it first?
Mark Bessey
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
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
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
+4  A: 

C++ is to C as Lung Cancer is to Lung.

Robert Gamble
+5  A: 

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

Robert Gamble
+17  A: 

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

Robert Gamble
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
+79  A: 

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."
or
The Department of Defense shoots you in the foot after offering you a blindfold and a last cigarette.
or
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.
or
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.
or
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
or
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.
or
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.

VMS $ MOUNT/DENSITY=.45/LABEL=BULLET/MESSAGE="BYE" BULLET::BULLET$GUN SYS$BULLET $ SET GUN/LOAD/SAFETY=OFF/SIGHT=NONE/HAND=LEFT/CHAMBER=1/ACTION=AUTOMATIC/ LOG/ALL/FULL SYS$GUN_3$DUA3:[000000]GUN.GNU $ SHOOT/LOG/AUTO SYS$GUN SYS$SYSTEM:[FOOT]FOOT.FOOT

%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

or
%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.

troff

rmtroff -ms -Hdrwp <<'!' | lpr -Pwp2 &
.*place bullet in footer
.B
.NR FT +3i
.in 4
.bu Shoot!
.br
.sp
.in -4
.br
.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(Gun.new)

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

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

pro
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
See "Brevity is the soul of wit" -- Shakespeare
James McMahon
Fatal Error: Cant find foot after so many shootings....Thank you for so much of fun
Enjoy coding
You can tell who the python programmers are.
DShook
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
-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
The metaphor starts to get a bit flaky about 3000 words in
kibibu
+83  A: 

"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

orip
Wonderful. (15 c
notJim
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
+4  A: 

This is missing from the list:

"Premature optimization is the root of all evil"

or...

"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.)

+252  A: 

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

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

codethief
This is brilliant!
j_random_hacker
I guess it was Mr. Anonymous again
Scoregraphic
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!
presario
"Measure once, cut twice" -- Wally (Dilbert)
Dan Andreatta
Unfortunately I've often found the corollary to be more true, esp i large projects: "Days of programming can save you weeks of planning"
MattiasK
@MattiasK: That's not the corollary, that's more the inverse. Still, sometimes it's true...
sleske
+4  A: 

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
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
+6  A: 

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.

Unsliced
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
+3  A: 
jJack
+7  A: 

To iterate is human. To recurse divine! :)

Mohit Nanda
+7  A: 

"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

JeffK
+4  A: 

"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

Prakash
+3  A: 

Computer programmers don't byte, they nibble a bit

remonedo
+55  A: 

"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

Gordon Bell
I experienced this first-hand recently, so painfully true...
Zsolt Török
+11  A: 
Prashanth Babu
+2  A: 

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

Prashanth Babu
Duplicate of http://stackoverflow.com/questions/58640/great-programming-quotes/58852#58852
VVS
+2  A: 

Difficult to code, impossible to maintain.

James Alexander
+2  A: 

If you don't think you're doing great things, you're probably right.

Mike Dunlavey
+2  A: 

Never comment your code - if it was hard to write, it should be hard to understand. -Anonymous

+3  A: 

The Knuth, the whole Knuth, and nothing but the Knuth, so help me Codd! -- don't know where I heard this, but I laughed.

David Robbins
+6  A: 

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

bradheintz
+4  A: 

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
Peter Tate
+6  A: 

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.

Draemon
enterprise library?
Max Schmeling
@Max: It could be many things.
Colin Mackay
+5  A: 

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.

Mike Miller
+16  A: 

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

unwind
+2  A: 

Remember the original question said nothing about the quotes having to be funny:

"If it ain't broke, don't fix it" -- anonymous

urig
+22  A: 

"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

hawkeye
+2  A: 

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

poseid
+5  A: 

From Paul Graham's "On Lisp":

An ideal world is left as an exercise to the reader.

Svante
+55  A: 

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

Mike Hall
Hahaha this made me laugh irl...
Filip Ekberg
awesome, really made me laugh :D
Pieter888
+2  A: 

I’ve finally learned what ‘upward compatible’ means. It means we get to keep all our old mistakes.

-- Dennie van Tassel

Mindaugas Mozūras
+11  A: 

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

-- John Johnson

Mindaugas Mozūras
this is really great.
amr osama
+3  A: 

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

Jared
CS professors *sigh*
Max Schmeling
+7  A: 

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

+16  A: 

"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

Serge - appTranslator
+36  A: 

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

azollman
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.
Iceman
+3  A: 

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"

mepcotterell
+2  A: 

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

Change causes problems

Bharani
+4  A: 

Like wine, the mastery of programming matures with time. But, unlike wine, it gets sweeter in the process.

-Lawrence Mucheka

Lonzo
+2  A: 

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

Lonzo
+5  A: 

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

Alan Perlis's Epigrams on Programming 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.

Dan Olson
Where did the fortran comment come from?
WolfmanDragon
+3  A: 

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.

Mike Hofer
+4  A: 

The third version is the first version that doesn't suck. -Mike Simpson

slipjig
Funny, I always assumed that was Steve Jobs
Todd Friedlich
+8  A: 

` The single back-quote

nicerobot
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
@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
+3  A: 

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

+4  A: 

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
+4  A: 

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 ;-)

featureBlend
+1 for (2).
j_random_hacker
+5  A: 

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.

Ludwig Wensauer
+12  A: 

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

-- Linus Torvalds

Bob Fanger
+20  A: 
if (!kill) strength++;
Joe Behymer
try { kill(); } catch { strength++; }
Per Erik Stendahl
+4  A: 

"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-)

Michael Bishop
By the looks of him, he died in 1987
StingyJack
+3  A: 

"Real programmers don't unit test."

+4  A: 

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, you've seen them all.

This was in response to the great number of calendars and coffee table books with pictures of fractals.

Bill Karwin
+21  A: 

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

MattK
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
+3  A: 

If it is worth doing once, it is worth automating...

jle
I'd do things once, but twice?? I think not...
drhorrible
+4  A: 

Not sure if these were mentioned, however they come from this site

  • Thou shalt not follow the NULL pointer, for chaos and madness await thee at its end.
  • Thou shalt check the array bounds of all strings (indeed, all arrays), for surely where thou typest "foo" someone someday shall type "supercalifragilisticexpialidocious".
Rekreativc
+2  A: 

LISP: To call a spade a thpade

Karl

Karl
+5  A: 

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.

Michael Itzoe
+5  A: 

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"

Skittles
This is from Fred Brooks' Mythical Man Month (ca. 1975).
Jim Ferrans
+3  A: 

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.

urig
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
+6  A: 

I don't know who said it originally, but

There's no such thing as temporary code.

RobH
+5  A: 

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.

Ria
+3  A: 

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

Michael Buen
+2  A: 

Let's not forget common help-desk terms...

  • PEBKAC - Problem Exists Between Keyboard and Chair

and the frequent sister to PEBKAC

  • I-D-10-T Error
Jonathan Sampson
And let's not forget PICNIC - Problem in Chair, Not in Computer.
RobH
+3  A: 

"The enemy of Great Code, is 'Good Code.'" - Unknown

Jonathan Sampson
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  A: 

Comments? Documentation? Don't they call it code for a reason?

Tim Post
+3  A: 

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

Andrea Ambu
+13  A: 

Artificial Intelligence is no match for natural stupidity.

Unknown author

+3  A: 

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. You'll have to search down for it.

+5  A: 

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

zomg lmfao !!!1!
Eduardo León
This has already been said (previous page).
cletus
+2  A: 

Nail here for a new monitor [x]

vobject
+2  A: 

Don't expect many comments. This code was hard to write, it should be hard to read.

(in assembly task switching routine)

Denis Hennessy
+5  A: 

"Complexity has nothing to do with intelligence, simplicity does." - Larry Bossidy.

atc
+2  A: 

I've been keeping a list for quite some time using Google Notebook: Software Thoughts

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

Herrmann
+2  A: 

"Beware of computer scientists with screwdrivers." --Unknown source

allan
+9  A: 

"Software is hard."

Donald Knuth

Bernard Dy
+20  A: 

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

Made me smile :)
VVS
yes that was a nice one
+8  A: 

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

+3  A: 

"Computers enable us to in thirty minutes what we never would have had to do before."

+2  A: 

"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

igowen
+70  A: 

My favourite:

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

(I don't know the author)

Jan Dudek
I love that. And it's so true.
Krzysztof Koźmic
measure twice, cut once.
aleemb
+3  A: 

If builders built as programers program, the first woodpecker that came along would destroy the civilization.

+2  A: 

"No! JavaScript isn't Java!"
Ash Hegab

+4  A: 

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

aatifh
+2  A: 

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

+2  A: 

“First, solve the problem. Then, write the code.” (John Johnson)

+3  A: 

Check out my site: http://www.SoftwareQuotes.com - 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

Imageree
+3  A: 

"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

Germstorm
+3  A: 

"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

Germstorm
That's a duplicate of http://stackoverflow.com/questions/58640/great-programming-quotes/58668#58668
VVS
+2  A: 
+2  A: 

CLASSIFICATION OF SOFTWARE ERRORS:

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

Initialization/off-by-one

Dynamic allocation Wrong argument

Not a Problem Duplicate

  • Bug in tool
  • Feature
  • RTFM
  • Ooops
  • Ooops I did it again
+4  A: 

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.

+2  A: 

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 ===

+4  A: 
+3  A: 

Marick’s Law:
When it comes to code it never pays to rush.

Mindaugas Mozūras
+3  A: 

"True glory consists in doing what deserves to be written; in writing what deserves to be read." - Pliny the Elder

Hoffmann
A: 

About Documentation:

Use the force: read the code!

Edwin
err, shouldn't it be "use the source, Luke" ?
orip
+5  A: 

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

Rulas
"That's been SOP for leveraging software key value points for the past 50 years"
Massif
+2  A: 

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.

lostiniceland
+3  A: 

Write in C / Listen Here

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.
Comptrol
"Java is for children, write in C"
Maxim Veksler
+9  A: 

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

dincer80
+4  A: 

a quote from my prev. manager

- will it work on 19 inch monitor too
Anurag Uniyal
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
+3  A: 

"Anything that can go wrong, will go wrong." -- Murphy's Law

Alex Barrett
+5  A: 

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

BubbaT
+7  A: 

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

Krzysztof Koźmic
+2  A: 

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

Krzysztof Koźmic
+36  A: 

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

Scott Bellware

Krzysztof Koźmic
+29  A: 

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.

Donotalo
+8  A: 

"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

Hkkathome
+10  A: 

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

-Anonymous

Daniel T. Magnusson
+4  A: 

Processes and methodologies can make good servants but are poor masters

Mark Dowd, John McDonald & Justin Schuh in "The Art of Software Security Assessment"

Gavin Miller
+3  A: 

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.

Maxim Veksler
The first quote is douglas adams
Mark Rogers
+3  A: 

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

Gumbo
+2  A: 

Don't comment your code ... if it was hard to write ... it's going to be hard to read!

-unknown

Scott Vercuski
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
+3  A: 

"Great things are not done by impulse, but by a series of small things brought together." -- Vincent Van Gogh --

It is what we do..

baash05
Well if small things matter... Write Vincent van Gogh instead of Vincent Van Gogh. Start van with a lowercase.
tuinstoel
+5  A: 

Keep It Simple Stupid

KISS

freggel
+2  A: 

From the Tao Of Programming :

Though a program be but three lines long, someday it will have to be maintained.

Ascalonian
+9  A: 

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

Bill Gates

Esko Luontola
Third time this has been posted...
John Gietzen
+32  A: 
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

raspi
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
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
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
+2  A: 

"You can write software expecting the hardware to be perfect, unfortunately hardware is not perfect and you have to fix it in code."

  • W. Giraud.

He was my mentor for FIRST Robotics, and this is absolutely true.

X-Istence
+5  A: 

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!

Maxim Veksler
+6  A: 

"code that ALMOST works looks NOTHING like the code that ACTUALLY works."

http://bash.org/?696919

BoltBait
+2  A: 

Once cut fails try awk, once awk fails do perl. Once perl sucks learn python. (Me, commenting on bash tips thread)

Maxim Veksler
+1 for "once Perl sucks". I too have reached the threshold.
j_random_hacker
+2  A: 

"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

Pat
+7  A: 

In theory this should work.

--anonymous developer

Adam
+3  A: 

"Perspective is worth 80 I.Q. points" - Alan Kay

Stephen P. in Roswell
+12  A: 

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

John Fouhy
thats ... simply true
Chris
Too, "what you cannot understand, you cannot build".
Paul Nathan
"What you can build, you can't always understand"
CodeFusionMobile
+2  A: 

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.

+116  A: 

"There's no test like production"

-By a colleague of mine

Sandman
a brilliant observation
MikeJ
Oh my god that is good.
Ian Boyd
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!
Here Be Wolves
+85  A: 

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

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

mschmidt42
+3  A: 

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

fsdemir
+5  A: 

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

dewde
+13  A: 

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

Bram Moolenaar (author of Vim)

Alex B
:( <--sad face, and comment extension before SO will take it
Ian Boyd
And other code is a by-product of this process.
Kuroki Kaze
+2  A: 

Change is the only constant thing in Software Engineering.

Mutant
+3  A: 

There are only 10 kinds of people, those who understand ternary, those who don't and those who think it's binary

+3  A: 

"When in doubt, leave it out" - Joshua Bloch

Gili
+3  A: 

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

Fortyrunner
+3  A: 

If debugging is the act of removing bugs from software, than programming must be the act of putting them in.

Don Werve
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
This is a duplicate.
Beska
+5  A: 

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

Johnny Blaze
+24  A: 

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

Jay Levitt
That's a wicked problem
Mike Robinson
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
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: http://en.wikipedia.org/wiki/Geometric_series#Proof_of_convergence 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
+2  A: 

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 : http://asserttrue.blogspot.com/2009/04/swing-versus-death-by-paper-cut.html

Nuno Furtado
+9  A: 

Not really programming, but it is definitely relevant:

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

Jon Winstanley
This is a duplicate.
John Gietzen
Oh, i +1'd for lol, but removed if it's a dupe
Ian Boyd
+4  A: 

Like a gas, software expands to fill its containing memory completely.

digijock
+29  A: 

To paraphrase P.J O'Rourke :

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

WOPR
+3  A: 

Arrogance in computer science is measured in nano-Dijkstras. - Alan Kay

voyager
+20  A: 

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.

Source: http://blogs.msdn.com/wesdyer/archive/2007/03/01/immutability-purity-and-referential-transparency.aspx

Benjol
+7  A: 

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

Michael Buen
+12  A: 

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

-Ed's Law of Debugging

e-holder
I coined this phrase while debugging my own code in my learning years. It just always seems to hold.
e-holder
+4  A: 

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

Kim Rutherford
+90  A: 

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

  • Anonymous

Before software should be reusable, it should be usable.

  • Ralph Johnson
Kb
That's so true!
Chris Pietschmann
Really awesome quote, thanks
orip
+3  A: 

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.

Sohail Anwar
+5  A: 

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?

Sohail Anwar
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  A: 

UNIX is simple. But It just needs a genius to understand its simplicity. --Dennis Ritchie

Sohail Anwar
A: 

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! :)

backslash17
+8  A: 

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

praavDa
Actually, the original goes: "In theory, the difference between theory and practice is much smaller, then it is in practice."
ldigas
+1 nevertheless :)
ldigas
+20  A: 

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

guardi
+5  A: 

If your software breaks, do you get to keep both pieces?

MikeJ
+1 i lol'd .
Ian Boyd
+36  A: 

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

MikeJ
Sometimes you just can't afford gum, and don't want to build a gum factory.
Ian Boyd
But if you run it through the washing machine (a little sanity checking) first, surely it's okay to chew (include)...
sblom
Or how about "is like reusing a syringe"
Chris Pietschmann
I always take care to disinfect the gum first.
Kyralessa
Isn't that what open sources is all about?
allyourcode
+2  A: 

Any problem in computer science can be solved with another layer of indirection. But that usually will create another problem.

David Wheeler

G.G.
+13  A: 

Cursing is the one language every programmer knows.

Joe Stropich
This is a duplicate.
John Gietzen
+22  A: 

By MCConnell in Code Complete

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

Konstantinos
+3  A: 

“It’s hardware that makes a machine fast. It’s software that makes a fast machine slow.”

– Craig Bruce

Jonathan Prior
+26  A: 

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.

Marco van de Voort
+1  A: 

There is no royal road to geometry.

Euclid

Jonas
How is this related to programming ?
Yassir
@Yassir There is no royal road to programming.
mwc
@mwc: with that i agree :d
Yassir
+11  A: 

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

-- Bill Gates

lispmachine
+43  A: 

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

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

Kedar Mhaswade
+8  A: 

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.

24x7Programmer
+3  A: 

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.

James Brooks
+7  A: 

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

Pratik
"Laws are like sausages, it is better not to see them being made." attributed to Otto von Bismarck, but apparently incorrectly (http://en.wikiquote.org/wiki/Otto_von_Bismarck).
Jim Ferrans
+6  A: 

This one by Jamie Zawinski always made me laugh

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

Jon Hess
+3  A: 

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 ?

e-satis
+8  A: 

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

David
This is great, but I'd like to see source.
Sneakyness
David
A: 

"All your base are belong to us!"

Andrew Siemer
-1 what has this got to do with programming ?
ldigas
You will have to look here to understand: http://en.wikipedia.org/wiki/All_your_base_are_belong_to_usThis is super old school (1991 :P) so if you have never heard it before...you 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
Base 2 or base 10 ? All of them !
e-satis
+2  A: 

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.

+15  A: 

Later equals never

crauscher
+3  A: 

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

Jeff Fritz
"[...] some customers have EXACTLY the opposite opinion of how another customer likes our software to work."Isn't that what options are for?
+11  A: 

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)

David Spillett
Exact duplicate
Vebjorn Ljosa
+5  A: 

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

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, with apologies to Frank Herbert

Joe White
+85  A: 

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

Ian Boyd
Strangely I do this, never know when someone might throw a carGoingWrongWay() exception
Neil Aitken
Throwing it isn't the problem, its catching it and silently ignoring it that you have to worry about...
TokenMacGuy
+1, there's so much truth in this one...
Dave Vogt
+3  A: 

Some day, someone will construct a list of 500 Great Programming Quotes, and this will be one of them.

le dorfier
Note: When posted, this was #499.
le dorfier
+32  A: 

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

Ian Boyd
simplicity of c++? HAR HAR HAR :D I suppose there is a similar sarcasm in the blazing speed of Smalltalk as well
Konstantinos
Welcome to the self-evident joke.
Ian Boyd
+2  A: 

"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!"

Christopher Farnell
Shouldn't that be -inf lines of which one is wrong?
Georg Fritzsche
+3  A: 

Here's one for the CSLA.Net programmers, a twist on the catchprase of The Fast Show's 'Swiss Toni'..

"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)

Andrew
+32  A: 

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

+1  A: 

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

Andrew Garrison
+5  A: 

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

bill
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
+8  A: 

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)

THEn
thanks i hate that saying
+2  A: 

Behind Every Successful Coder, there'an even more successful De-Coder to understand that Code.

+3  A: 

My all time favourite adaptation of Shakespeare:

0x2B || !0x2B

Lloyd
== true
Svish
+4  A: 

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

-- Gerald Weinberg

Dima
duplicate duplicate
+2  A: 

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.

Rigo Vides
+10  A: 

Java is to JavaScript what Tea is to Teabagging.

Anon
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
+5  A: 

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

Daff
+4  A: 

If you use copy and paste while you're coding, you're probably committing a design error.

-- David Parnas

Mark
This one is important, especially for people trying to learn OOP.
Sneakyness
+3  A: 

One Page Principle: A specification that will not fit on one page of 8.5x11 inch paper cannot be understood. -- Mark Ardis

IDreamOf362
+5  A: 

Friend of mine: "Artificial Intelligence is a technic for making computers act like Paris Hilton."

rprandi
+17  A: 

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

-- Harlan Ellison

Kenster
+11  A: 

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

-- T-shirt wisdom

CodeFusionMobile
+4  A: 

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

Justin Johnson
+2  A: 

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"

+5  A: 

Matthew Leffler:

You want a dot operator in PHP?

eval(str_replace('.', '->', $code_with_dot_operator))
Steven Oxley
+3  A: 

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

wazoox
+9  A: 

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 ]

Martin Chiteri
+2  A: 
  • Will work for bandwith

Altered version, the popular:

  • Will code HTML for food.
n002213f
+48  A: 

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")

And that's where every programmers I need to start from scratch rewrite desire comes in.
PeteT
Amen, Bro, Amen!
Cassy
Hahaha. LOL. wewhhh.
Sam
+13  A: 

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

  • Any sufficiently advanced bug is indistinguishable from a feature. ~Rich Kulawiec
  • From a programmer's point of view, the user is a peripheral that types when you issue a read request. ~Peter Williams
  • 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

And my favorite:

  • Should array indices start at 0 or 1? My compromise of 0.5 was rejected without, I thought, proper consideration. ~Stan Kelly-Bootle
Ludovic
Would love to vote that last one up. These should be in separate posts.
sblom
+6  A: 

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

ojrac
+3  A: 

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

codedude
Shareholders. .
Baddie
+5  A: 

The quality goes in after the code goes out.

Michael McCarty
+2  A: 

If you have a source do any thing.

Umesh Aawte
+12  A: 

"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

xcramps
+3  A: 

it's not what the software does. it's what the user does. -hugh macleod

Bryan Oakley
+8  A: 

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'

KitsuneYMG
+5  A: 

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

CaptainProton
+11  A: 

God is Real, unless declared Integer.

(J. Allan Toogood)

+3  A: 

It's difficult to express the sorrow of losing code that you spent hours on, simply because you forgot to save...

Darknight
+17  A: 

"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"

Jon Hopkins
+1 for a quote from a great book.
quant_dev
+6  A: 

There's a nice collection of quotes here:

Programming quotes

Dave
+3  A: 

"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

Zac
These quotes should be in separate posts.
sblom
+7  A: 

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

--Isaac Asimov

Gordon Bell
+4  A: 

"Good programmers know what to write. Great ones know what to rewrite (and reuse)."

Eric Raymond

n002213f
+8  A: 

“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

Juan Manuel
+2  A: 

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

Dawie Strauss
+2  A: 

I have one:

Don't loose your knowledge with a lot of information.

Tristan
I don't get it. And you probably mean "lose" instead of "loose".
sblom
Actually, it can go either way, methinks.
ldigas
+3  A: 

j++; // increment j

Buggieboy
HAHA!...................
Goober
+2  A: 

Everything is computable!

Absolute0
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
Turing disagrees.
outis
+2  A: 

Requirements are like water. They are easy to build on when they are frozen.

Rachel
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  A: 

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

Bomlin
+22  A: 

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

  • Albert Einstein

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

Rachel
+3  A: 

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ó

Rachel
+24  A: 

Programmers usually have good reasons for making bad decisions.

Larsenal
+3  A: 

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.

Superfilin
+1  A: 

Life is like a set of development methodologies, there is always more than 1 way of doing it.

williamtroup
+2  A: 

"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

+1  A: 

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

Digitalex
+10  A: 

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

Rachel
+1  A: 

Software isn't the only kind of structure that changes over time.

Rachel
+4  A: 

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
Raj More
+2  A: 

In theory, theory and practice are the same; in practice, they are not.

no comment on the downvote?
I think the downvote is due to the fact that this quote has been posted several times already.
Moayad Mardini
+23  A: 

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

Georg Fritzsche
A: 

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.

Rachel
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
+8  A: 

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.

Chintan Patel
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
+4  A: 

"The Free Lunch Is Over."

Herb Sutter

vobject
+4  A: 

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

Marcus Lindblom
+4  A: 

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

--Suraj Chandran

Suraj Chandran
+3  A: 

“Computers are useless. They can only give you answers.” (Pablo Picasso)

Dilip
+4  A: 

"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)

SketchBookGames
+2  A: 

I am not smart I just screwed up first!

I am not smart I just stay with problems longer.

azamsharp
+7  A: 

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

Georg Fritzsche
+13  A: 

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

Paul McGuire
+5  A: 

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.

Paul McGuire
+2  A: 

"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.)

Anon
+7  A: 

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

Ravi
That's actually pretty well put. Very _ana_logical.
Tor Valamo
+5  A: 

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

Ravi
+2  A: 

"Errors, like straws, upon the surface flow; He who would search for pearls must dive down below."

John Dryden

Ether
+4  A: 

"Fixing Unix is easier than living with NT." - Jonathan Gilpin

Ether
+6  A: 

No code is faster than no code. -- merb motto

Guy van den Berg
+9  A: 

i like the Quotes

1)

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

2)

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

anishmarokey
I learned that as "but only gurus ...".
ChrisW
+5  A: 

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

anishmarokey
+6  A: 

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

Artificial Intelligence is no match for natural stupidity.

-Unknown

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.

-Unknown

Carlos
+12  A: 

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

Martin Fowler, "Refactoring", page 90

orip
+3  A: 

"Be Jack of all you can be Master at any time and on any programming language"

YetAnotherCoder
I so agree with this. Never let any one technology dictate your skill or usefulness as a programmer.
Nick Wiggill
+2  A: 

Any sufficiently well-documented lisp program contains an ML program in its comments -- Unknown

Martin DeMello
+6  A: 
WTF?!

Attributed to anybody ready anybody else's code.

Stuart
+10  A: 

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.

Mich Ravera
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
+6  A: 

Nihilism:

while (true) { 
    return null;
}
lemotdit
+2  A: 

The function of good software is to make the complex appear to be simple.

Ravi
+2  A: 

Good code is its own best documentation.

Ravi
+3  A: 

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

Julio
+2  A: 

Team debugging: the act of intimidating a PC into doing for two people what it refuses to do for one.

RMorrisey
+2  A: 

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!

credit: http://www.codeproject.com/KB/cs/PropertyWatch.aspx

KMoraz
+16  A: 

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

source

Yassir
+6  A: 
"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.

rsp
"If all you have is a hammer, everything looks like a thumb"
Windows programmer
+13  A: 

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)

Domchi
+6  A: 

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

michael
That's why I don't buy Macs! I can't afford to afford to throw them out the window!
Nick Wiggill
+10  A: 

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.

piemesons
This one is by Rick Cook. +1
Moayad Mardini
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
+5  A: 

"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

Jfsanchez2k
+2  A: 

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.

Zubair
"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
+23  A: 

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

Macha
+4  A: 

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

Mike Gleason jr Couturier
+6  A: 

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

-- Dennis Ritchie

Ondrej Slinták
+18  A: 

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

Xolve
+8  A: 

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

Cylon Cat
+43  A: 

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.

AaronLS
Sad that today learning model in many countries consist on memorizing instead of solving problems using sruff you are required to memorize
MoreThanChaos
Possibly update to Never memorize what you can google.
PeteT
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: http://www.joelonsoftware.com/articles/LordPalmerston.html
allyourcode
@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
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
+3  A: 

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.

AaronLS
+7  A: 

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)

bob quinn
+13  A: 

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

Alceu Costa
But 'goto home' and 'goto vacation' is nice. :)
RahulJ
goto home == goto wife.location?it is evil too.
Behrooz
goto vacationvacation: Me.Money = Me.Money - 1000
CodeFusionMobile
+9  A: 

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

--Voltaire

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

bob quinn
I *despise* this quote.
Matt Davis
Why do you despise this quote?
Kyralessa
+13  A: 

From Bash.org

(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
(MAler.home) 127.0.0.1
*** 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 127.0.0.1 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)hah
(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
+13  A: 

"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

Jeremy Morgan
This is an exact duplicate.
Vebjorn Ljosa
+3  A: 

"We don't have time to plan. We only have time to execute."

BFinney
I F@^%! hate this answer... even if it is right (JWZ loves it.)
beggs
+19  A: 

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

hexium
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
+5  A: 

Syntactic sugar causes cancer of the semicolon

Koder_
+5  A: 

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)

beggs
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
+11  A: 

Deleted code is debugged code.

Jeff Sickel

Juan Manuel
+4  A: 

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." !!!
eidylon
+2  A: 
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

Tommy McGuire
Mhm John Postel, that was very stupid. Look at today's html.
Kugel
+18  A: 

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

-- Douglas Adams

Matt Davis
+16  A: 

http://imgs.xkcd.com/comics/regular_expressions.png

The second row.

Austin Kelley Way
+3  A: 

One of my friends likes this very much:

Open source software only comes in one edition: awesome.

Lukas Šalkauskas
I prefer: "Open source software only comes in one edition: unusable".
DisgruntledGoat
funny, but not true.
Lukas Šalkauskas
@Lukas - Have you seen open office?
Philip Smith
+12  A: 

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

Justin
That's not a double post, but quintripple?
Gerrit
+4  A: 

Occam's Taser: The simplest solution is often the most painful.

Don't remember where I heard it, but it describes my life well.

CoderTao
+14  A: 

There is nothing quite so permanent as a quick fix.

David Pratt
+20  A: 

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

bob quinn
+5  A: 

One must learn from design patterns, not the design patterns.

Varuna
+3  A: 

The function name should define everything the function does.

Varuna
+14  A: 

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

Ken Pespisa
But not a feature that can be cut from the schedule.
Kyralessa
+16  A: 

Sam Redwine:

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

Jordan Ryan Moore
This is a duplicate.
Vebjorn Ljosa
+8  A: 

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

rhettg
+4  A: 
I am not an engineer, I am a software engineer.

:)

NAVEED
+7  A: 

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

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

Florian
+3  A: 

Half-knowledge is dangerous

Famous quote that applies to everything!

Varuna
+8  A: 

How does a web design go straight to hell : http://theoatmeal.com/comics/design_hell

Varuna
+13  A: 

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

griti
+3  A: 

Artificial intelligence is no match for real stupidity.

yossale
+14  A: 
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
+2  A: 

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? :-)

CesarGon
IMO this is the best one on this first page, at least :)
Nick Wiggill
+10  A: 

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

-- Webster's 3rd International Dictionary

fuenfundachtzig
+9  A: 

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.

ttvd
+3  A: 

Only in wealth, there is room for a bad idea -- Jasper van der Meer

Ikke
+4  A: 

Programmers do not die. They just gosub without return.

Unknown author.

Sergey
+18  A: 

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

piemesons
+9  A: 

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

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

uriel
+8  A: 

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

lstanczyk
+4  A: 
"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
Jens Granlund
+7  A: 
"Keyboard not found. Press < F1 > to RESUME."

source unknown

NAVEED
That'd be almost every BIOS out there. Just plug in the keyboard and press F1. ;)
Marcus Lindblom
Then message should be: "Keyboard not found. Press < F1 > to RESUME. Don't forget to plug keyboard first."
NAVEED
+3  A: 

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.

Paul McGuire
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
+2  A: 

"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

David
+3  A: 

// TODO: or die

Helpful todo comment

Varuna
+6  A: 

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

Unknown

Sorry for my English.

Luciano
+2  A: 

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

plan9assembler
+20  A: 

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.

RahulJ