Michael Arntzenius writes:
Beautiful code gets rewritten; ugly code survives.
Just so, generic code is replaced by its concrete instances, which are faster and (at first) easier to comprehend.
Just so, extensible code gets extended and shimmed and customized until under its own sheer weight it collapses, then replaced by a monolith that Just Works.
Just so, simple code grows, feature by creeping feature, layer by backward-compatible layer, until it is complicated.
So perishes the good, the beautiful, and the true.
In this world of local-optimum-seeking markets, aesthetics alone keep us from the hell of the Programmer-Archaeologist.
Code is limited primarily by our ability to manage complexity. Thus,
Software grows until it exceeds our capacity to understand it.