It takes a touch of genius - and a lot of courage to move in the opposite direction.— Albert Einstein
Informative Software Design quotations
Talk is cheap. Show me the code.
Any fool can write code that a computer can understand.
Good programmers write code that humans can understand.
Most of you are familiar with the virtues of a programmer.
There are three, of course: laziness, impatience, and hubris.
Copy and paste is a design error.
The hardest part of design ... is keeping features out.
The trouble with programmers is that you can never tell what a programmer is doing until it's too late.
Technical skill is mastery of complexity, while creativity is mastery of simplicity.
Learning to program has no more to do with designing interactive software than learning to touch type has to do with writing poetry
The cheapest, fastest, and most reliable components are those that aren't there.
Hiring people to write code to sell is not the same as hiring people to design and build durable, usable, dependable software.
Solving a problem simply means representing it so as to make the solution transparent.
If you think good architecture is expensive, try bad architecture.
Design is in everything we make, but it's also between those things.
It's a mix of craft, science, storytelling, propaganda, and philosophy.
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.
Simplicity and elegance are unpopular because they require hard work and discipline to achieve and education to be appreciated.
A language that doesn't have everything is actually easier to program in than some that do
... with proper design, the features come cheaply. This approach is arduous, but continues to succeed.
If we want users to like our software we should design it to behave like a likeable person: respectful, generous and helpful.
The belief that complex systems require armies of designers and programmers is wrong. A system that is not understood in its entirety, or at least to a significant degree of detail by a single individual, should probably not be built.
Anyone could learn Lisp in one day, except that if they already knew Fortran, it would take three days.
An organisation that treats its programmers as morons will soon have programmers that are willing and able to act like morons only.
Controlling complexity is the essence of computer programming.
Know what you're talking about.
The most important single aspect of software development is to be clear about what you are trying to build.
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. The first method is far more difficult.
The unavoidable price of reliability is simplicity.
Increasingly, people seem to misinterpret complexity as sophistication, which is baffling -- the incomprehensible should cause suspicion rather than admiration.
Nothing in progression can rest on its original plan.
We may as well think of rocking a grown man in the cradle of an infant.
The problem with using C++ ... is that there's already a strong tendency in the language to require you to know everything before you can do anything.
Design and programming are human activities; forget that and all is lost.
Hey, I'm a good software engineer, but I'm not exactly known for my fashion sense. White socks and sandals don't translate to 'good design sense'.
The general problem with ambitious systems is complexity.
[...] it is important to emphasize the value of simplicity and elegance, for complexity has a way of compounding difficulties.
Premature optimization is the root of all evil in programming.
There is a lot of interest in the arts, music, theatre, filmmaking, engineering, architecture and software design. I think we have now transitioned the modern-day version of the entrepreneur into the creative economy.