(lots and lots of) Programming Quotes

Started by Thorin, August 11, 2009, 02:26:18 PM

Previous topic - Next topic

Thorin

I've been poking around on the machine of a developer who used to work where I work now.  He didn't bother cleaning anything off his machine (there's pictures of girls, Messenger conversations, the offer letter from the place he went to, etc).  I ended up finding a locally-saved web page full of programming quotes and thought I'd share them with you:

Programming Quotes

If you lie to the compiler, it will get its revenge.
- Henry Spencer

Trying to outsmart a compiler defeats much of the purpose of using one.
- Kernighan & Plauger, The Elements of Programming Style.

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

If builders built buildings the way programmers wrote programs, then the first woodpecker that came along would destroy civilisation.
- Gerald Weinberg

Programming can be fun, so can cryptography; however they should not be combined.
- Kreitzberg and Shneiderman

Testing by itself does not improve software quality. Test results are an indicator of quality, but in and of themselves, they don't improve it. Trying to improve software quality by increasing the amount of testing is like trying to lose weight by weighing yourself more often. What you eat before you step onto the scale determines how much you will weigh, and the software development techniques you use determine how many errors testing will find. If you want to lose weight, don't buy a new scale; change your diet. If you want to improve your software, don't test more; develop better.
- Steve McConnell "Code Complete"

Once a new technology starts rolling, if you're not part of the steamroller, you're part of the road.
- Stewart Brand

The truth does not change according to our ability to stomach it.
- Flannery O'Connor

Let us change our traditional attitude to the construction of programs. Instead of imagining that our main task is to instruct a computer what to to, let us concentrate rather on explaining to human beings what we want a computer to do.
- Donald Knuth

Premature optimisation is the root of all evil.
- Donald Knuth

Be careful about using the following code -- I've only proven that it works, I haven't tested it.
- Donald Knuth

Computers are good at following instructions, but not at reading your mind.
- Donald Knuth

... the designer of a new system must not only be the implementor and the first large-scale user; the designer should also write the first user manual. ... If I had not participated fully in all these activities, literally hundreds of improvements would never have been made, because I would never have thought of them or perceived why they were important.
- Donald Knuth

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"

The trouble with the world is that the stupid are cocksure and the intelligent are full of doubt.
- Bertrand Russell

A charlatan makes obscure what is clear; a thinker makes clear what is obscure.
- Hugh Kingsmill

Unformed people delight in the gaudy and in novelty. Cooked people delight in the ordinary.
- Erik Naggum

An organisation that treats its programmers as morons will soon have programmers that are willing and able to act like morons only.
- Bjarne Stroustrup

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

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

Before software can be reusable it first has to be usable.
- Ralph Johnson

Programmers are in a race with the Universe to create bigger and better idiot-proof programs, while the Universe is trying to create bigger and better idiots.  So far the Universe is winning.
- Anon

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

Just because the standard provides a cliff in front of you, you are not necessarily required to jump off it.
- Norman Diamond

But in our enthusiasm, we could not resist a radical overhaul of the system, in which all of its major weaknesses have been exposed, analyzed, and replaced with new weaknesses.
- Bruce Leverett, "Register Allocation in Optimizing Compilers"

The best performance improvement is the transition from the nonworking state to the working state
- John Ousterhout

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. Debugging had to be discovered. I can remember the exact instant when I realized that a large part of my life from then on was going to be spent in finding mistakes in my own programs.
- Maurice Wilkes discovers debugging, 1949

Real computer scientists despise the idea of actual hardware. Hardware has limitations, software doesn't. It's a real shame that Turing machines are so poor at I/O.
- Anon

There are only two industries that refer to their customers as "users".
- Edward Tufte

Debugging a Direct3D application can be challenging.
- Microsoft's Direct3D Immediate Mode overview.

If you want a girlfriend, avoid working in the computer games industry like the plague.  If you work seven days a week, 15 hours a day for almost two years, with barely enough time for a pint, you have no time whatsoever for relationships.  Plus computer-games makers are regarded as being about as hip and cool as abattoir workers.
- Toby Gard, creator of Lara Croft.

There are two ways to write error-free programs; only the third works.
- Alan J. Perlis

To many managers, getting rid of the arrogant, undisciplined, over-paid, technology-obsessed, improperly-dressed etc. programmers would appear to be a significant added benefit.
- Bjarne Stroustrup "The C++ Programming Language 3e, section 24.2.4"

I did say something along the lines of "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

Naturally we feel that mentally ill people are not what we are looking  for when we hire programmers - although there is no empirical data to support or contradict that view...... Is it appropriate to give tests for mental illness to anyone applying for any kind of job?
- Weinberg "The Psychology of Computer Programming"

The most important single aspect of software development is to be clear about what you are trying to build.
- Bjarne Stroustrup

If you think your management doesn't know what it's doing or that your organisation turns out low-quality software crap that embarrasses you, then leave.
- Edward Yourdon "Rise and Resurrection of the American Programmer"

Most of you are familiar with the virtues of a programmer. There are three, of course: laziness, impatience, and hubris.
- Larry Wall

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

The road to wisdom?
Well its plain and simple to express:
Err and err and err again,
but less and less and less.
- Piet Hein

Any inaccuracies in this index may be explained by the fact that it has been sorted with the help of a computer.
- Donald Knuth "Sorting and Searching"

TeX has found at least one bug in every Pascal compiler it's been run on, I think, and at least two in every C compiler.
- Donald Knuth

The process of preparing programs for a digital computer is especially attractive, not only because it can be economically and scientifically rewarding, but also because it can be an aesthetic experience much like composing poetry or music.
- Donald Knuth

You're bound to be unhappy if you optimize everything.
- Donald Knuth

These machines have no common sense; they have not yet learned to "think," and they do exactly as they are told, no more and no less. This fact is the hardest concept to grasp when one first tries to use a computer.
- Donald Knuth

There are perhaps 5% of the population that simply *can't* think.
There are another 5% who *can*, and *do*.
The remaining 90% *can* think, but *don't*.
- R. A. Heinlein

Lord, give us the wisdom to utter words that are gentle and tender, for tomorrow we may have to eat them.
- Sen. Morris Udall

Do not worry about your difficulties in mathematics, I assure you that mine are greater.
- Einstein

Computers are useless. They can only give you answers.
- Pablo Picasso

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

I really hate this damned machine
I wish that they would sell it.
It never does quite what I want
But only what I tell it.
- A Programmer's Lament

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

When someone says, "I want a programming language in which I need only say what I want done," give him a lollipop.
- Alan Perlis

For every complex problem there is an answer that is clear, simple, and wrong.
- H L Mencken

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

Haste is of the devil. Slowness is of God.
- H L Mencken

If the code and the comments disagree, then both are probably wrong.
- attributed to Norm Schryer

Good programmers use their brains, but good guidelines save us having to think out every case.
- Francis Glassborow

...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.
- Fred Brook [paraphrased] as quoted from Allen Holub's "http://www.javaworld.com/javaworld/jw-07-1999/jw-07-toolbox.html"

Never ascribe to malice that which is adequately explained by incompetence
- Napoleon Bonaparte

Sufficiently advanced incompetence is indistinguishable from malice.
- Anon


And the users exclaimed with a laugh and a taunt: "It's just what we asked
for but not what we want."
- Anon

Some problems are so complex that you have to be highly intelligent and well informed just to be undecided about them.
- Laurence J. Peter

The Six Phases of a Project:

  • Enthusiasm
  • Disillusionment
  • Panic
  • Search for the Guilty
  • Punishment of the Innocent
  • Praise for non-participants
- Anon

Those who cannot remember the past are condemned to repeat it.
- George Santayana

For a sucessful technology, honesty must take precedence over public relations for nature cannot be fooled.
- Richard Feynman

The inside of a computer is as dumb as hell but it goes like mad!
- Richard Feynman

The act of focusing our mightiest intellectual resources on the elusive goal of goto-less programs has helped us get our minds off all those really tough and possibly unresolvable problems and issues with which today's professional programmer would otherwise have to grapple.
- John Brown

A most important, but also most elusive, aspect of any tool is its influence on the habits of those who train themselves in its use. If the tool is a programming language this influence is, whether we like it or not, an influence on our thinking habits.
- Edsger Dijkstra

To iterate is human, to recurse divine.
- L. Peter Deutsch

Increasingly, people seem to misinterpret complexity as sophistication, which is baffling---the incomprehensible should cause suspicion rather than admiration. Possibly this trend results from a mistaken belief that using a somewhat mysterious device confers an aura of power on the user.
- Niklaus Wirth

There's no sense being exact about something if you don't even know what you're talking about.
- John von Neumann

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.
- C.A.R. Hoare

... the cost of adding a feature isn't just the time it takes to code it. The cost also includes the addition of an obstacle to future expansion. ... The trick is to pick the features that don't fight each other.
- John Carmack

You can't have great software without a great team, and  most software teams behave like dysfunctional families.
- Jim McCarthy

Even if you're on the right track, you'll get run over if you just sit  there.
- Will Rogers

That's the thing about people who think they hate computers. What they  really hate is lousy programmers.
- Larry Niven and Jerry Pournelle "Oath of Fealty"

Trying to get into the details seems to be a religious issue -- nearly everybody is convinced that every style but their own is ugly and unreadable.  Leave out the "but their own" and they're probably right...
- Jerry Coffin on indentation

When you start off by telling those who disagree with you that they are not merely in error but in sin, how much of a dialogue do you expect ?"
- Thomas Sowell

Einstein argued that there must be simplified explanations of nature, because God is not capricious or arbitrary.  No such faith comforts the software engineer.
- Fred Brooks, Jr.

Incompetents invariably make trouble for people other than themselves.
- Larry McMurtry

A notation is important for what it leaves out.
- Joseph Stoy

As we said in the preface to the first edition, C "wears well as one's experience with it grows." With a decade more experience, we still feel that way.
- Brian Kernighan and Dennis Ritchie

A mathematician is a machine for turning coffee into theorems.
- Paul Erdos

Ugly programs are like ugly suspension bridges: they're much more liable to collapse than pretty ones, because the way humans (especially engineer-humans) perceive beauty is intimately related to our ability to process and understand complexity. A language that makes it hard to write  elegant code makes it hard to write good code.
- Eric S. Raymond

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

Simplicity is prerequisite for reliability
- Edsger W.Dijkstra

I've finally learned what "upward compatible" means. It means we get to keep all our old mistakes.
- Dennie van Tassel

Exceptions relieve the programmer of tedious writing boilerplate code -- without removing the semantics of said code -- and they allow the programmer to arrange the code so that error handling code is more  separate from the main program logic.
- Herb Sutter

It is difficult to get a man to understand something when his salary depends on his not understanding it.
- Upton Sinclair

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

The behavior of any bureaucratic organization can best be understood by  assuming that it is controlled by a secret cabal of its enemies.
- Robert Conquest's Second Law of Politics

Power is the ability to control things, moral authority is the  ability to change things
- Jim Wallis

There is nothing more difficult to carry out, nor more doubtful of success, nor more dangerous to handle, than to initiate a new order of things. For the reformer has enemies in all those who profit by the old order, and only lukewarm defenders in all those who would profit by the new...
- Niccolo Macchiavelli, The Prince

The open secrets of good design practice include the importance of knowing what to keep whole, what to combine, what to separate, and what to throw away.
- Kevlin Henny

Rules of Optimization:
Rule 1: Don't do it.
Rule 2 (for experts only): Don't do it yet.
- M.A. Jackson

More computing sins are committed in the name of efficiency (without necessarily achieving it) than for any other single reason - including blind stupidity.
- W.A. Wulf

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

The best is the enemy of the good.
- Voltaire

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

The pessimist complains about the wind; the optimist expects it to change; the realist adjusts the sails.
- William Arthur Ward

Good judgement comes from experience, and experience comes from bad judgement.
- Fred Brooks

Plan to throw one away, you will anyhow.
- Fred Brooks

If you plan to throw one away, you will throw away two.
- Craig Zerouni

Learning is not compulsory.  Neither is survival.
- W. Edwards Deming

C++ tries to guard against Murphy, not Machiavelli.
- Damian Conway

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

We are tied down to a language which makes up in obscurity what it lacks in style.
- Tom Stoppard

They always say time changes things, but you actually have to change them yourself.
- Andy Warhol

We only acknowledge small faults in order to make it appear that we are free from great ones.
- La Rochefoucauld

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

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

Perl is another example of filling a tiny, short-term need, and then being a real problem in the longer term.
- Alan Kay

The competent programmer is fully aware of the strictly limited size of his own skull; therefore he approaches the programming task in full humility, and among other things he avoids clever tricks like the plague.
- Edsger Dijkstra

It is practically impossible to teach good programming style to students that have had prior exposure to Basic; as potential programmers they are mentally mutilated beyond hope of regeneration.
- Edsger Dijkstra

We are apt to shut our eyes against a painful truth.... For my part, I am willing to know the whole truth; to know the worst; and to provide for it.
- Patrick Henry

A non-virtual function says, you have to do this and you must do it this way. A virtual function says you have to do this, but you don't have to do it this way. That's their fundamental difference.
- Scott Meyers

Comparing to another activity is useful if it helps you formulate questions, it's dangerous when you use it to justify answers.
- Martin Fowler

Correctness is clearly the prime quality. If a system does not do what it is supposed to do, then everything else about it matters little.
- Bertrand Meyer

An API that isn't comprehensible isn't usable.
- James Gosling

Style distinguishes excellence from accomplishment.
- James Coplien

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-Exupery, Wind, Sand and Stars

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

The ability to simplify means to eliminate the unnecessary so that the necessary may speak.
- Hans Hoffmann

Simplicity carried to the extreme becomes elegance.
- Jon Franklin

Simplicity is the ultimate sophistication.
- Leonardo da Vinci

Moving parts in rubbing contact require lubrication to avoid excessive wear. Honorifics and formal politeness provide the lubrication where people rub together. Often the very young, the untraveled, the naive, the unsophisticated deplore these formalities as "empty," "meaningless," or "dishonest," and scorn to use them. No matter how "pure" their motives, they thereby throw sand into machinery that does not work too well at best.
- Robert A. Heinlein

It's so easy to become mesmerized by the immediacy of a result that you don't question its validity.
- Naomi Karten

Every program has (at least) two purposes: the one for which it was written, and another for which it wasn't.
- Alan J. Perlis

Elegance is not optional
- Richard O'Keefe

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

Technology is dominated by two types of people: Those who understand what they do not manage. Those who manage what they do not understand.
- Putt's Law

Copy and paste is a design error
- David Parnas

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.
- Flon's Law

When one is postulating correlations or causations extant in reality, one should always remember that the human brain is mainly a pattern recognition engine. And it is such a persistent pattern recognition engine that it often perceives patterns where none exist.
- Jeff Walther

Any code of your own that you haven't looked at for six or more months might as well have been written by someone else.
- Eagleson's law

If you can't be a good example, then you'll just have to be a horrible warning.
- Catherine Aird

Alas, to wear the mantle of Galileo it is not enough that you be persecuted by an unkind establishment, you must also be right.
- Bob Park

Any fool can use a computer. Many do.
- Ted Nelson

Say what you will about the Ten Commandments, you must always come back to the pleasant fact that there are only ten of them.
- H. L. Mencken

You can know the name of a bird in all the languages of the world, but when you're finished, you'll know absolutely nothing whatever about the bird... So let's look at the bird and see what it's doing -- that's what counts. I learned very early the difference between knowing the name of something and knowing something.
- Richard Feynman

Incorrect documentation is often worse than no documentation.
- Bertrand Meyer

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

If the lessons of history teach us anything it is that nobody learns the lessons that history teaches us.
- Anon

Ugly programs are like ugly suspension bridges: they're much more liable to collapse than pretty ones, because the way humans (especially engineer-humans) perceive beauty is intimately related to our ability to process and understand complexity. A language that makes it hard to write elegant code makes it hard to write good code.
- Eric S. Raymond

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

If you want a product with certain characteristics, you must ensure that the team has those characteristics before the product's development.
- Jim and Michele McCarthy - Software for your Head

Organizations which design systems are constrained to produce designs which are copies of the communication structures of these organizations.
- Conway's Law (For example, if you have four groups working on a compiler, you'll get a 4-pass compiler)
Prayin' for a 20!

gcc thorin.c -pedantic -o Thorin
compile successful

Darren Dirt

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

GUILTY! ;)
_____________________

Strive for progress. Not perfection.
_____________________

Tom

Quote from: Darren Dirt on August 11, 2009, 05:30:35 PM
Quote
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.

GUILTY! ;)
I think that one is siggable :o
<Zapata Prime> I smell Stanley... And he smells good!!!

Mr. Analog

Quote from: Tom on August 11, 2009, 05:55:21 PM
Quote from: Darren Dirt on August 11, 2009, 05:30:35 PM
Quote
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.

GUILTY! ;)
I think that one is siggable :o
Agreed.
By Grabthar's Hammer

Thorin

I knew someone would find a gem in there...  I found several.
Prayin' for a 20!

gcc thorin.c -pedantic -o Thorin
compile successful

Tom

Quote from: Thorin on August 12, 2009, 10:58:59 AM
I knew someone would find a gem in there...  I found several.
There were several in there that I liked :) but that one Darren posted is so true it hurts.
<Zapata Prime> I smell Stanley... And he smells good!!!

Darren Dirt

Quote from: Tom on August 12, 2009, 03:00:59 PM
so true it hurts.

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

^ howzabout that ones?
_____________________

Strive for progress. Not perfection.
_____________________

Thorin

Here's one that rings true for me:

Quote from: Thorin on August 11, 2009, 02:26:18 PM
A most important, but also most elusive, aspect of any tool is its influence on the habits of those who train themselves in its use. If the tool is a programming language this influence is, whether we like it or not, an influence on our thinking habits.
- Edsger Dijkstra

What we do influences how we do it, and how we do it influences what we do.  I think the best skill for a software developer is not a technical skill or a soft (get-along-with-others) skill, but the ability to think completely at a tangent to how they normally think.  That's so incredibly hard to do, to think differently, but it allows the developer to find problems with the code they write that most developers would miss.
Prayin' for a 20!

gcc thorin.c -pedantic -o Thorin
compile successful

Darren Dirt

Quote from: Thorin on August 13, 2009, 10:29:51 AM
Here's one that rings true for me:

Quote from: Thorin on August 11, 2009, 02:26:18 PM
A most important, but also most elusive, aspect of any tool is its influence on the habits of those who train themselves in its use. If the tool is a programming language this influence is, whether we like it or not, an influence on our thinking habits.
- Edsger Dijkstra

What we do influences how we do it, and how we do it influences what we do.  I think the best skill for a software developer is not a technical skill or a soft (get-along-with-others) skill, but the ability to think completely at a tangent to how they normally think.  That's so incredibly hard to do, to think differently, but it allows the developer to find problems with the code they write that most developers would miss.

anyone who has read Heinlein's classic tome "Stranger In A Strange Land" would find much truth in what you and Dijkstra are saying... some days I wish I could "think like a Martian" :)

In a sense, our patterns of thought and thus our very accomplishments are limited by the languages in which we toss around those thoughts. And that's true in programming languages (i.e. complex data structures don't even enter the MIND of someone first learning BASIC with no experience in unstructured, modular development environments) but also it's true in life in general (my guess is African pygmies or similar don't debate metaphysical ethical quandries or time-travel paradoxes ... because they are literally unable to do so). As the novel "Flatland" illustrates, 3-dimensional models are not easily conceived by, let alone analyzed by, those limited to 2 dimensions.
_____________________

Strive for progress. Not perfection.
_____________________