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. -- C.A.R. Hoare, 1980 ACM Turing Award Lecture
 — Marijn Haverbeke, Eloquent JavaScript