Skip to content

Simplicity

With constant pressure to add features and options and configurations, and to ship code quickly, it's easy to neglect simplicity, even though in the long run simplicity is the key to good software. Simplicity requires more work at the beginning of a project to reduce an idea to its essence and more discipline over the lifetime of a project to distinguish good changes from bad or pernicious ones. With sufficient effort, a good change can be accommodated without compromising what Fred Brooks called the 'conceptual integrity' of the design but a bad change cannot, and a pernicious change trades simplicity for its shallow cousin, convenience. Only through simplicity of design can a system remain stable, secure, and coherent as it grows.

(Preface, The Go Programming Language)

Charles Babbage

"On two occasions, I have been asked [by members of Parliament],

'Pray, Mr. Babbage, if you put into the machine wrong figures, will the right answers come out?'

I am not able to rightly apprehend the kind of confusion of ideas that could provoke such a question."

(Charles Babbage - designer of a prototype of the first computer)

Programmers

"If builders built buildings the way programmers wrote programs, then the first woodpecker that came along would destroy civilization." (Gerald Weinberg)

A programmer's joke

A woman asks her husband, a programmer, to go shopping.

Dear, please, go to the nearby grocery store to buy some bread. Also, if they have eggs, buy 6.

OK, hun.

Twenty minutes later the husband comes back bringing 6 loaves of bread.

His wife is flabbergasted.

Dear, why on earth did you buy 6 loaves of bread?

They had eggs.