Programming Quotes

When in doubt, use brute force.

— Ken Thompson

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

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 and P. J. Plauger in The Elements of Programming Style.

Controlling complexity is the essence of computer programming.

— Brian Kernighan

Simplicity is prerequisite for reliability.

— Edsger W. Dijkstra

Unix is a junk OS designed by a committee of PhDs.

— Dave Cutler

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

— Dennis Ritchie

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

The key to performance is elegance, not battalions of special cases.

— Jon Bentley and Doug McIlroy

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

A language that doesn’t have everything is actually easier to program in than some that do.

— Dennis M. Ritchie

Object-oriented design is the roman numerals of computing.

— Rob Pike

Simplicity is the ultimate sophistication.

— Leonardo da Vinci

Nobody who uses XML knows what they are doing.

— Chris Wenham

Comparing a computer language to a human language is like comparing an operating system kernel to a popcorn kernel.

— kryptkpr []

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

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

— Edsger W. Dijkstra

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.

— Edsger W. Dijkstra

What I cannot build, I do not understand.

— Richard Feynman

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

Any intelligent fool can make things bigger, more complex, and more violent. It takes a touch of genius – and a lot of courage – to move in the opposite direction.

— E. F. Schumacher

Make things as simple as possible, but not simpler.

— Albert Einstein

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

— Richard Feynman

The unavoidable price of reliability is simplicity.

— C.A.R. Hoare

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

I have always wished that my computer would be as easy to use as my telephone. My wish has come true. I no longer know how to use my telephone.

— Bjarne Stroustrup

Software gets slower faster than hardware gets faster.

— Wirth’s law

If it doesn’t work, it doesn’t matter how fast it doesn’t work.

— Mich Ravera

… 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 [Today we could add ‘Extreme Programming’, ‘Agile Software Development’ and many more.]

The problem with object-oriented languages is they’ve got all this implicit environment that they carry around with them. You wanted a banana but what you got was a gorilla holding the banana and the entire jungle.

— Joe Armstrong

A program is like a poem: you cannot write a poem without writing it. Yet people talk about programming as if it were a production process and measure “programmer productivity"in terms of "number of lines of code produced”.In so doing they book that number on the wrong side of the ledger: We should always refer to"the number of lines of code spent".

— E. W. Dijkstra

The beauty of small and simple code is that you can bend or break the rules as long it stays small and simple. Rules allow people to write code without thinking. [And when] you dont think […] you get bloated code that just concatenates stupid patterns.
People stop thinking and questioning [and] then its just worshipping some rules without any pruporse.

— Cinap Lenrek

It is not that uncommon for the cost of an abstraction to outweigh the benefit it delivers. Kill one today!

— John Carmack

There’s nothing in computing that can’t be broken by another level of indirection.

— Rob Pike

A complex system that works is invariably found to have evolved from a simple system that worked. The inverse proposition also appears to be true: A complex system designed from scratch never works and cannot be made to work.

— John Gall

The sooner you start to code, the longer the program will take.

— Roy Carlson

The cheapest, fastest and most reliable components of a computer system are those that aren't there.

— Gordon Bell