3 ms·
> I would add that at the turn of the millennium C++ had a clear domination of the application space. Correct, which it has since lost. My theory is that it's
by pron 2y ago
> I would add that at the turn of the millennium C++ had a clear domination of the application space.
Correct, which it has since lost. My theory is that it's been due to two reasons: improvement in the performance of high-level languages due to both software and hardware advances and due to it taking several years for people to observe the cost of a low-level language, which mostly manifests not in the initial writing but in maintenance (because low abstraction means that changes to components require less local code changes). It's not much more costly to write a program in C++ than it is in Java or Python, but it is much more costly to maintain over time.
> In the last decade or so, I think the main reason it is being displaced in the desktop space simply by virtue of not being JS.
It's also been displaced in the server space. But suppose the lack of built-in "enterprise" features is the cause. It's been a decade since Rust, the "modern C++", has appeared and it, too, has failed to make significant inroads into the application space (i.e. take a significant market share from what I call high level languages).
I'm not saying people should stop looking for some holy grail of low-level/application convergence, only that I would (currently) bet against it.
- gpderetta 2y agoMost likely your experience is more relevant than mine, but regarding performance, while it is true that C# and Java are fast enough that for many, if not most, applications are indistinguishable form C++, the raise and raise of JS and python (languages with questionable and downright terrible performance respectively) in the last decade make me think that implementation performance has not been a significant factor. Hardware advances might be relevant though. Re maintenance, I'm not sure that a C++ program is more costly to maintain. I suspect that C++ is over-represented in multimillion line codebases. In any case, I think you might be right, it certainly is possible that an optimal "full stack" language (if you allow me the term) just doesn't exist. I would settle for a control-plane language that is easily embeddable and can be easily embedded in a native C or C++ (or rust, or whatever) application.
- pron 2y ago> in the last decade make me think that implementation performance has not been a significant factor. Hardware advances might be relevant though. I think both have been significant, but I agree that top performance is not so much an issue for many applications (although JS is also very fast). > I suspect that C++ is over-represented in multimillion line codebases. You're right, but the question is compared to what? Java, C++ and C are pretty much the only languages used in multi-MLOC codebases maintained over many years (there are others, but not nearly to the same degree as those three) so they're all over-represented, but the amount of C++ and C code is significantly lower than that of Java code. I think it's due to maintenance costs (as a maintainer of a C++ codebases over my career, that's been my experience, but I try not to extrapolate so I consider this my unproven hypothesis).