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 [http://www.reddit.com/r/programming/comments/9upno/c_is_frequently_reviled_both_by_those_who_never/c0eiyqu]


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