- C.A.R. Hoare, The 1980 ACM Turing Award Lecture
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 computing scientist’s main challenge is not to get confused by the complexities of his own making.
- Gordon Bell
The cheapest, fastest, and most reliable components are those that aren’t there.
One of my most productive days was throwing away 1000 lines of code.
When in doubt, use brute force.
- Jeff Sickel
Deleted code is debugged code.
- Brian W. Kernighan, P. J. Plauger
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
Controlling complexity is the essence of computer programming.
- David Gelernter
Beauty is more important in computing than anywhere else in technology because software is so complicated. Beauty is the ultimate defence against complexity.
- Doug Gwyn
UNIX was not designed to stop its users from doing stupid things, as that would also stop them from doing clever things.
- John Carmack
If you’re willing to restrict the flexibility of your approach, you can almost always do something better.
- John Osterhout
A program that produces incorrect result twice as fast is infinitely slower.
- Geer et al.
The central enemy of reliability is complexity.
- Edsger W. Dijkstra
Simplicity is prerequisite for reliability.
- Peter Deutsch
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.
- The network is reliable
- Latency is zero
- Bandwidth is infinite
- The network is secure
- Topology doesn’t change
- There is one administrator
- Transport cost is zero
- The network is homogeneous
- Jon Bentley, Doug Mcllroy
The key to performance is elegance, not battalions of special cases.
- Bill Gates
Measuring programming progress by lines of code is like measuring aircraft building progress by weight.
- John Johnson
First, solve the problem. Then, write the code.
- Ken Thompson
You can’t trust code that you did not totally create yourself.
- Sean Parent
Good code is short, simple, and symmetrical – the challenge is figuring out how to get there.
好的代码，短小、简洁，并且匀称 – 而真正的挑战在于弄清如何达到这些目标。
The best is the enemy of the good.
- Dr. Pamela Zave
The purpose of software engineering is to control complexity, not to create it.
- Olin Shivers
I object to doing things that computers can do.
- merb motto
No code is faster than no code.
- Dave Parnas
As a rule, software systems do not work well until they have been used, and have failed repeatedly, in real applications.
Programming languages should be designed not by piling feature on top of feature, but by removing the weaknesses and restrictions that make additional features appear necessary.
- Ryan Singer
So much complexity in software comes from trying to make one thing do two things.