Jan 31, 2020

Stroustrup has written quite a bit fighting against complexity:

> There are two fundamental ways of approaching the unavoidable uncertainty in a design:

> • add “improvements” until everybody feels well served

> • cut until there is nothing left to cut and all there is left is principled and fundamental

> After both approaches, experience will show the need for changes (pre-release) and additions (all we can do post-release). I clearly favor the second approach and consider it proper engineering based on principles and feedback. I consider the former hacking and politics. In a standards process, compromises are necessary, but we must try to ensure than compromises are not between irreconcilables or just union-of-features bloat.

He continues:

> Stability is a feature as well as a serious design constraint. [....] I can summarize most people’s attitude:

> • “C++ is too complex. We need to make it smaller, simpler, and cleaner.

> • And please add these two features.

> • And whatever you do, don’t break my code!”

Source: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p196...