The Emperor's Old Clothes
[Charles Antony Richard Hoare]
The price of reliability is the pursuit of the utmost simplicity. It is a price which the very rich find most hard to pay.
If our basic tool, the language in which we design and code our programs, is also complicated, the language itself becomes part of the problem rather than part of its solution.
A feature which is omitted can always be added later, when its design and its implications are well understood. A feature which is included before it is fully understood can never be removed later.
I conclude that 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.
we recognized that a subset could be an improvement on the original.
First, we certainly want programs to be read by people and people prefer to read things once in a single pass.
In any respectable branch of engineering, failure to observe such elementary precautions would have long been against the law.