📝Time-adjusted complexity justifies pushing the complexity downward

Given, Time-adjusted complexity definition: C=pcptpC = \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=pcpC = \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.


Want to receive my 🖋 posts as I publish them?