Indirection is the price of scale. As a system grows, you need breaking points, boundaries. These often result in adding one more level of indirection.
But we're also moving in the other direction, for example Java is introducing value types ("inline classes") and low-level memory allocation/manipulation APIs. That's a big step for a language that started with the idea of everything is an object (and an object is an indirection).
Comments
Indirection is the price of scale. As a system grows, you need breaking points, boundaries. These often result in adding one more level of indirection.
But we're also moving in the other direction, for example Java is introducing value types ("inline classes") and low-level memory allocation/manipulation APIs. That's a big step for a language that started with the idea of everything is an object (and an object is an indirection).
I would call indirection the price for abstraction.