If you want to do something well in technology, choose something that has been proven to work time and time again, and aim to keep the system as a whole as simple as possible.
Do one thing well — Doug McIlroy, original UNIX developer, mathematician and CS academic
Newer ≉ better
Newer does not approximate better. Dan McKinley’s excellent Choose Boring Technology explains why boring technology is almost always the better choice.
How recent or fresh a technology is and its intrinsic quality are not correlated. One might expect that designs monotonically improve, but in practice they often regress.
Firstly, the designer is unlikely to have perfect information of all work in a given field previously, and may repeat previous failed experiments.
Secondly, because design usually involves trade-offs and judgement specific to circumstance.1
And thirdly, because we stand on the shoulders of giants, and the sum of smart, hard-working people who considered any given domain of interest over time is often underestimated.
Simplify, then add lightness2 — Colin Chapman, engineer and Lotus Cars founder
Simpler ≈ better
Simpler approximates better. Unnecessary complexity should be avoided, because the higher the complexity the lower the entropy, and because the universe wants entropy to tend to increase, the lower the entropy the more energy is required to maintain the state.3
The more complex the system the harder it is to know the outcome in advance, which is one reason why weather forecasting is difficult and requires big computers.
Abstraction in software is often needed in order to add flexibility, but this abstraction is paid for by more lines of source code, with takes longer to write in the first place — also increasing the maintenance burden. Even without more lines of code, the greater the conceptual complexity of the system the harder for mere mortals to reason about it well.
- A classic trade-off being between cost, quality, and speed of production.↩
- https://www.lotuscars.com/en-GB/lotus-philosophy/↩
- i.e. the implication of the second law of thermodynamics that the entropy of isolated systems left to their own devices will increase.↩