Law of Requesite Variety

A model system or controller can only model or control something to the extent that it has sufficient internal variety to represent it. -Ashby’s law

If its interface is simpler, the inner complexity will be higher to compensate.

This has implications for API design. That is, sometimes it makes sense to solve a simple problem with a complicated tool if the problem is a simple instance of a difficult problem and the complicated tool is a well-built solution to the difficult problem as a whole.

Perhaps Well Designed Asbstractions are so because they have the smallest internal complexity required to completely model/control the given domain they’re abstracting over?

resources: