Skip to content

Comment on Type Erasure in C++ Explained

Comments

"Well, let's just add another level of indirection."

Modern software development in a nutshell.

Modern software development is a convoluted mess of poor abstractions, new frameworks and flavors of the week, and essentially a million different ways of solving the same problem.

I work with some of the most brilliant people in the world (in my opinion) and the problems we are working on are how to grab peoples attention and show them relevant ads. And we don’t call them “ads” but recommendations.

Sorry I’m working right now and wondering what I’m doing with my life.

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.

Nothing modern about it. This is basically the C philosophy in a nutshell. Assuming "indirection" means "pointer indirection".

AboutSource Built by g1lg1l

Hackerly is an independent reader for Hacker News, built on the public HN API. Not affiliated with Y Combinator.