If you look at the C++ versions being used across Apple's platforms, they are more than happy staying with C++17 (Metal Shading Language is even lower, based on C++14).
Almost everyone else seems to care only about LLVM, otherwise how to explain that LLVM gets almost as many contributions per year as the Linux kernel, while clang is lagging so much behind?
I've been using c++ for a while, and this comment is perhaps the best and funniest description of what I think about the language but was never able to put into words. Kudos for the laughs!
* absl strings provides the same compile-time guarantees that <format> does
* absl date/time libs have integrations with the proto time types
* google3 has many threading & synchronization primitives that it prefers over the STL types (all of which already has integrations with fleet-wide performance monitoring and other toolchain customizations, e.g. deadlock detection), so there isn't much reason to move the threading libraries forwardSo are C++ language updates.
At least GCC has Red-Hat supporting ISO C++ improvements.
[0] - ARM, Intel, Embarcadero, IBM, NVidia, IBM, Nintendo, Sony,...
Also AFAIK IBM is one of the most dedicated supporters of C++ in general.
Not in what concerns ISO C++ support, and if it was up to IBM, trigraphs would still be supported.
See what ISO version their xl compilers support, across all mainframe, Aix and Linux deployments.
Even that's true, it's now IBM's money that gets invested.
> Not in what concerns ISO C++ support, and if it was up to IBM, trigraphs would still be supported.
I know about the trigraphs. That they were fighting for that shows imho exactly that IBM is heavily invested in C++. They have a shitload of old but hightly important code that can't be migrated realistically.
So IBM will keep throwing money on C++ to extend its live infinitely, I guess.
What bothers me most about C++ is that it's mostly old people now. All the young people who are actively involved in language design, tool development, ... are putting their effort into other languages.
Or see how WinDev is so resistent to change, instead of providing .NET like tooling for C++, like Borland/Embarcadero have done for the last 25 years, they stick to their ways of manually editing IDL files and COM.
In 10 years, there won't be many people left working on C++ as a language and on the tooling.
And if it changes, so be it, I am not coding today as I was in 1986, when I typed my first LOAD "".
At least Microsoft started to do exactly this. They started to touch the Win API even to create Rust bindings. Because MS saw that this is the only way to future prove this stuff.
Other big players, like IBM, don't look like they're moving, though. But OK, IBM moves so slowly as a pitch drop falls. So maybe we just don't see them moving.
If you feel like C++/WinRT development experience is bad, good luck with Rust/WinRT.
And since it is the same team leads, which clearly have proven that they don't care about developer productivity, given how they have managed the C++/CX to C++/WinRT transition, I wouldn't wait too much out of it.
And I've heard rumors the Win team is an issue in general. (As the product they ship).
But they're at least moving. And the direction is clear.
The problem are people that don't want to change anymore. But this trait is independent form age in my experience.
But nevertheless, that C++ doesn't attract new developers may have reasons indeed. C++ refuses to get substantially modernized. In the long run such a stance will attract less and less people I think.
C++ would need a fresh start without all the baggage collected through several decades of backwards compatibility. A C++v2 is overdue, imho.
Only then it would find itself eventually competing with other new languages, without the current killer feature that reads "we can run ancient code". I'm not sure most people behind C++ are keen on such a challenge.
Nothing is wrong with old people. That's not what I was trying to say but people in their 50s or 60s will not be working for much longer. I don't think there will be many people left working __on__ C++ and its tooling in 10 years.
> But nevertheless, that C++ doesn't attract new developers may have reasons indeed. C++ refuses to get substantially modernized. In the long run such a stance will attract less and less people I think.
I think there are some pretty nice additions in the recent standards but all the backward compatibility is definitely a problem for the development of the language.
C++ is basically a "do it all" language and it feels like newer languages have rather specific use cases which they excel in.
I would also extrapolate this form how things look now.
But in a sense the language has deliberately chosen that way.
> C++ is basically a "do it all" language and it feels like newer languages have rather specific use cases which they excel in.
Yes, I also see this.
I'm not really happy with that as I think it's easier to learn one "real general purpose language" properly than have shallow knowledge in two dozens of glorified DSLs.
But C++ isn't this language for me either. I personally would love to see Scala (v3) to become a better general purpose language. It's modern with a lightweight syntax, it's powerful (up to compile time verification of your code), it can embed all kinds of DSLs (which makes dedicated external DSLs superfluous), now it starts even to "run everywhere", but it's slow(er) and fat(er) compared to C++, Rust, and the other contenders in some very important areas, which sadly rules it out for many tasks.
Agreed, which is a pity but it is what it is.
> But C++ isn't this language for me either. I personally would love to see Scala (v3) to become a better general purpose language. It's modern with a lightweight syntax, it's powerful (up to compile time verification of your code), it can embed all kinds of DSLs (which makes dedicated external DSLs superfluous), now it starts even to "run everywhere", but it's slow(er) and fat(er) compared to C++, Rust, and the other contenders in some very important areas, which sadly rules it out for many tasks.
I have been doing C++ for the last 6 years now for scientific computing so safety wasn't the first priority, but chasing pointers while debugging is certainly no fun.
Recently, I have been getting into Rust and I really like what I have seen so far, at least for my use cases.
MSVC's stdlib has been open-sourced, and MSVC is used by plenty of companies writing games, native Windows software, etc.