def programming


An evolving system increases its complexity unless work is done to reduce it.

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

Well-designed components are easy to replace. Eventually, they will be replaced by ones that are not so easy to replace.

Organizations which design systems are constrained to produce designs which are copies of the communication structures of these organizations.

Treat your code like poetry and take it to the edge of the bare minimum.

No code is faster than no code.

When in doubt, leave it out.

The key is to acknowledge from the start that you have no idea how this will grow. When you accept that you don't know everything, you begin to design the system defensively... You should spend most of your time thinking about interfaces rather than implementations.

It's important to remember that when you start from scratch there is absolutely no reason to believe that you are going to do a better job than you did the first time. First of all, you probably don't even have the same programming team that worked on version one, so you don't actually have "more experience". You're just going to make most of the old mistakes again, and introduce some new problems that weren't in the original version.

I hate code, and I want as little of it as possible in our product.

The art of programming is the art of organizing complexity, of mastering multitude and avoiding its bastard chaos as effectively as possible.

What matters for simplicity is that there's not interleaving.

Simplicity is about subtracting the obvious and adding the meaningful.

Programs, like people, get old. We can’t prevent ageing, but we can understand its causes, limit its effects and reverse some of the damage.

Most of the biggest problems in software are problems of misconception.

Easy is not to be underestimated. Easy taps the pool of talent and ideas out there that were turned off by hard.

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

Simple doesn't mean stupid. Thinking that it does, does.

You do not really understand something unless you can explain it to your grandmother.

The secret to building large apps is never build large apps. Break your applications into small pieces. Then, assemble those testable, bite-sized pieces into your big application.

The code you write makes you a programmer. The code you delete makes you a good one. The code you don't have to write makes you a great one.

Inside every large program, there is a small program trying to get out.

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.

The standard rule is, when you're in a hole, stop digging; that seems not to apply [to] software nowadays.

Such is modern computing: everything simple is made too complicated because it's easy to fiddle with; everything complicated stays complicated because it's hard to fix.

Built with using

Source code available @ githubpull requests are more than welcome ;-)