I’m ready to say “nowhere” (or “somewhere besides programming languages”) because of finite depth and diminishing returns. C++ will gradually be cleaned up, C will gradually get slightly faster, and that’s about it.
Wait, what about Rust?
Here’s a hypothesis: people understandably want memory-safe languages because 90+% of their code isn’t performance sensitive. So we say, let’s start with a high level language and put in escape hatches for when you really need performance.
The problem is that even if it fits the most common case, it’s still an abstraction inversion. Once you give up that level of control, you can never get it back, even with the biggest escape hatch in the world.
This is why the long term solution is building up from the bottom, with libraries and language extensions on top of C. And Rust is still too big of a leap.
I was also thinking about how the limitations of SQL are technical in nature[#]. In theory even the best C compiler has trouble optimizing composition. The reason it “works” is that the whole thing is so low level that 1. the optimizations don’t actually matter, and 2. it’s too complicated for humans to do any better at it. A query optimizer can’t glue two statements together to save its life, but a small C program has thousands of lines and hundreds of functions.
Keywords: nothing scales