Home | Email Tris | Email Pol

Quotations on simplicity in software design


Remember that there is no code faster than no code.

-- Taligent's Guide to Designing Programs


Simplicity is the soul of efficiency.

-- Austin Freeman, "The Eye of Osiris"


...it is simplicity that is difficult to make.

-- Bertholdt Brecht


The inherent complexity of a software system is related to the problem it is trying to solve. The actual complexity is related to the size and structure of the software system as actually built. The difference is a measure of the inability to match the solution to the problem.

-- Kevlin Henney, "For the sake of simplicity" (1999)


The minimum could be defined as the perfection that an artefact achieves when it is no longer possible to improve it by subtraction. This is the quality that an object has when every component, every detail, and every junction has been reduced or condensed to the essentials. It is the result of the omission of the inessentials.

-- John Pawson, \uffffMinimum\uffff (1998)


More good code has been written in languages denounced as "bad'' than in languages proclaimed "wonderful'' -- much more.

-- Bjarne Stroustrup, "The Design and Evolution of C++" (1994)


I have yet to see any problem, however complicated, which, when you looked at it in the right way, did not become still more complicated.

-- Poul Anderson


Simple things should be simple and complex things should be possible.

-- Alan Kay


Perfection (in design) is achieved not when there is nothing more to add, but rather when there is nothing more to take away.

-- Antoine de Saint-Exup\uffffry


Plan to throw one away; you will anyhow.

-- Frederick Brooks, "The Mythical Man-month" (1975)


Smart data structures and dumb code works alot better than the other way around.

-- Eric S. Raymond, "The Cathedral and the Bazaar"


Premature optimization is the root of all evil in programming.

-- C.A.R. Hoare


The key to performance is elegance, not battalions of special cases. The terrible temptation to tweak should be resisted unless the payoff is really noticeable.

-- Jon Bentley and Doug McIlroy


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


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

-- Dennis Ritchie


[...] the purpose of abstraction is not to be vague, but to create a new semantic level in which one can be absolutely precise.

-- Edsger W. Dijkstra, \uffffThe Humble Programmer\uffff (1972)


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


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


One of the most dangerous (and evil) things ever injected into the project world is the notion of process maturity. Process maturity is for replicable manufacturing contexts. Projects are one-time shots. Replicability is never the primary issue on one-time shots. More evil than good has come from the notion that we should "stick to the methodology." This is a recipe for non-adaptive death. I'd rather die by commission.

-- David Schmaltz


The difference between a good and a poor architect is that the poor architect succumbs to every temptation and the good one resists it.

-- Ludwig Wittgenstein


Refactoring provides enough energy to a system for it to relax into a new and more comfortable state, a new local minimum.

-- Kevlin Henney, \uffffThe Imperial Clothing Crisis\uffff (2002)


If we complicate things they get less simple.

-- Professor at Cambridge University


Beauty is more important in computing than anywhere else in technology because software is so complicated. Beauty is the ultimate defense against complexity.

-- David Gelernter, "Machine Beauty", Basic Books (1998)


Fools ignore complexity; pragmatists suffer it; experts avoid it; geniuses remove it.

-- Alan Perlis


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

-- Graham Bell


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


Good judgment comes from experience; experience comes from bad judgment.

-- Frederick Brooks


...Simplifications have had a much greater long-range scientific impact than individual feats of ingenuity. The opportunity for simplification is very encouraging, because in all examples that come to mind the simple and elegant systems tend to be easier and faster to design and get right, more efficient in execution, and much more reliable than the more contrived contraptions that have to be debugged into some degree of acceptability....Simplicity and elegance are unpopular because they require hard work and discipline to achieve and education to be appreciated.

-- Edsger W. Dijkstra


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.

-- Albert Einstein


Everything should be made as simple as possible, but not simpler.

-- Albert Einstein


To arrive at the simple is difficult.

-- Rashid Elisha


The structure of a system reflects the structure of the organization that built it.

-- R. Fairley


The unavoidable price of reliability is simplicity.

-- C.A.R. Hoare


Computer Science is the only discipline in which we view adding a new wing to a building as being maintenance.

-- Jim Horning


Controlling complexity is the essence of computer programming.

-- Brian Kernighan


Complexity is a sign of technical immaturity. Simplicity of use is the real sign of a well design product whether it is an ATM or a Patriot missile.

-- Daniel T. Ling


Programming is similar to a game of golf. The point is not getting the ball in the hole but how many strokes it takes.

-- H. Mills


Simplicity does not precede complexity, but follows it.

-- Alan J. Perlis


Fancy algorithms are slow when N is small, and N is usually small.

-- R. Pike


Computer Science is the first engineering discipline in which the complexity of the objects created is limited solely by the skill of the creator, and not by the strength of raw materials.

-- B. Reid


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

-- Edward V. Berard


Technical skill is mastery of complexity, while creativity is mastery of simplicity.

-- E. Christopher Zeeman


Architect: Someone who knows the difference between that which could be done and that which should be done.

-- Larry McVoy


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


There's an old story about the person who wished his computer were as easy to use as his telephone. That wish has come true, since I no longer know how to use my telephone.

-- Bjarne Stroustrup