📝Time-adjusted complexity justifies pushing the complexity downward
Given, Time-adjusted complexity definition:
Isolating complexity in a place where it will never be seen is almost as good as eliminating the complexity entirely. —Ousterhout2018
This is what happens when we push complexity “downward:” programming → programming languages → compilers/interpreters/runtime → operating systems (→ hardware?).
The time adjustment is critical as it justifies increasing the complexity of the places that are (relatively) rarely visited (compilers/interpreters/runtimes, operating systems). This allows the un-adjusted net complexity () to increase, therefore producing software that does more (has more features).
But this only makes sense if Low-level programming will become less and less popular.