# 📝Time-adjusted complexity justifies pushing the complexity downward

Given, Time-adjusted complexity definition: $C = \sum_{p} c_p t_p$

Isolating complexity in a place where it will never be seen is almost as good as eliminating the complexity entirely. —Ousterhout2018, p. 6

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 ($C = \sum_p c_p$) 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.