Matt Pavelle

Some of My Favorite Programming Quotes

Not only is it not right, it's not even wrong.
-- Wolfgang Pauli

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

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 1980 ACM Turing Award Lecture

The computing scientist's main challenge is not to get confused by the complexities of his own making.
-- E. W. Dijkstra

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

One of my most productive days was throwing away 1000 lines of code.
-- Ken Thompson

When in doubt, use brute force.
-- Ken Thompson

Deleted code is debugged code.
-- Jeff Sickel

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

The most effective debugging tool is still careful thought, coupled with judiciously placed print statements.
-- Brian W. Kernighan, in the paper Unix for Beginners (1979)

Controlling complexity is the essence of computer programming.
-- Brian Kernigan

Beauty is more important in computing than anywhere else in technology because software is so complicated. Beauty is the ultimate defence against complexity.
-- David Gelernter

UNIX was not designed to stop its users from doing stupid things, as that would also stop them from doing clever things.
-- Doug Gwyn

If you're willing to restrict the flexibility of your approach, you can almost always do something better.
-- John Carmack

A program that produces incorrect results twice as fast is infinitely slower.
-- John Osterhout

Life is too short to run proprietary software.
-- Bdale Garbee

I had a nightmare once in which I a had convinced a friend how wonderful C++ is. A while later he came back, and he was mad.
-- Robin Rosenberg

Threads [and] signals [are] a platform-dependant trail of misery, despair, horror and madness.
-- Anthony Baxter

The Internet is not for sissies.
-- Paul Vixie

It's a curious thing about our industry: not only do we not learn from our mistakes, we also don't learn from our successes.
-- Keith Braithwaite

Ethernet always wins.
-- Andy Bechtolsheim

The central enemy of reliability is complexity.
-- Geer et al.

Simplicity is prerequisite for reliability.
-- Edsger W. Dijkstra

Beware of "the real world". A speaker's appeal to it is always an invitation not to challenge his tacit assumptions.
-- Edsger W. Dijkstra

A program is portable to the extent that it can be easily moved to a new computing environment with much less effort than would be required to write it afresh.
-- W. Stan Brown

Programming graphics in X is like finding the square root of PI using Roman numerals.
-- Henry Spencer

Forward thinking was just the thing that made multics what it is today.
-- Erik Quanstrom

The Eight Fallacies of Distributed Computing
Essentially everyone, when they first build a distributed application, makes the following eight assumptions. All prove to be false in the long run and all cause big trouble and painful learning experiences.
 1. The network is reliable
 2. Latency is zero
 3. Bandwidth is infinite
 4. The network is secure
 5. Topology doesn't change
 6. There is one administrator
 7. Transport cost is zero
 8. The network is homogeneous
-- Peter Deutsch

It is the way I think. I am a very bottom-up thinker. If you give me the right kind of Tinker Toys, I can imagine the building. I can sit there and see primitives and recognize their power to build structures a half mile high, if only I had just one more to make it functionally complete. I can see those kinds of things.
The converse is true, too, I think. I can't from the building imagine the Tinker Toys. When I see a top-down description of a system or language that has infinite libraries described by layers and layers, all I just see is a morass. I can't get a feel for it. I can't understand how the pieces fit; I can't understand something presented to me that's very complex. Maybe I do what I do because if I built anything more complicated, I couldn't understand it. I really must break it down into little pieces.
-- Ken Thompson

if you're capable of understanding `finalised virtual hyperstationary factory class', remembering the Java class hierarchy, and all the details of the Java Media Framework, you are (a) a better man than i am (b) capable of filling your mind with large chunks of complexity, so concurrent programming should be simple by comparison. go for it.
ps. i made up the hyperstationary, but then again, it's probably a design pattern.
-- forsyth

Vacuumware: n, software which was written specifically to fill a void in the industry, especially software which is successful more due to how well it fills that void than due to anything else, like usability or utility. (I believe it may have been Dennis Ritchie who said (about X) "Sometimes when you fill a vacuum, it still sucks." X is a prime example of vacuumware, and in fact inspired the term.)

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

Most xml i've seen makes me think i'm dyslexic. it also looks constipated, and two health problems in one standard is just too much.
-- Charles Forsyth

This 'users are idiots, and are confused by functionality' mentality of Gnome is a disease. If you think your users are idiots, only idiots will use it.
-- Linus Torvalds

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

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

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

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

The object-oriented model makes it easy to build up programs by accretion. What this often means, in practice, is that it provides a structured way to write spaghetti code.
-- Paul Graham

First, solve the problem. Then, write the code.
-- John Johnson

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

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

Complexity kills. It sucks the life out of developers, it makes products difficult to plan, build and test, it introduces security challenges and it causes end-user and administrator frustration.
-- Ray Ozzie

If the designers of X Windows built cars, there would be no fewer than five steering wheels hidden about the cockpit, none of which followed the same principles - but you'd be able to shift gears with your car stereo. Useful feature that.
-- Marcus J. Ranum, DEC

A language that doesn't have everything is actually easier to program in than some that do.
-- Dennis M. Ritchie

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.
-- Charles M. Strauss

You can't trust code that you did not totally create yourself.
-- Ken Thompson

Object-oriented design is the roman numerals of computing.
-- Rob Pike

Simplicity is the ultimate sophistication.
-- Leonardo da Vinci

Compatibility means deliberately repeating other people's mistakes.
-- David Wheeler