I wasn't implying that D would completely displace C++. C++ is very strong, I am not proposing we abandon it en masse, rather use use some it features integrated into C++ projects.
D can interface to C, C++, and objective C
D has C++ linkage, so it is possible to call D functions from C++, and C++ functions from D, same for C and Objective C, albeit with restrictions. So if one had a project where they wanted to use some D features that C++ doesn't currently have (there is quite a list of these), they could have a mixed C++/D project easily. From a cursory look at Rust, I am not sure if this could be done using Rust. Also D is rather similar to C++ in a lot of ways, whereas Rust looks rather different IMO.
I guess if one wanted to wait for a number of years, then C++ might eventually have all the features of D.
The other complication is how C++ and D might interoperate in the future. For example C++ now has modules in C++20 (implementation is in MS; g++ and clang++ not too far away), I wonder if C++ modules will interoperate with D modules. I guess if one is going to have a C++/D mixed project, then the code should at least be kept in separate translation units; there would probably be separate C++ and D modules.
Some other points about deprecation:
If there are a bunch of things that are deprecated in C++2023, doesn't that mean that one would just compile against an earlier standard to use them still?
I am hoping that production code bases have coding standards that disallow all those crappy things that we would like to be deprecated.
This forum has a lot of what I call traffic generators: they post code full of all the things that are bad form, generating replies to fix them, thereby increasing the traffic on the forum. IMO this so pervasive that we now now have the perception that C++ is taught really badly. This probably not entirely true, but perhaps the perception is worse than it should be. I met an IT guy (not a developer) who said he didn't like C++ because of having to allocate memory all the time - this does demonstrate poor or at least out of date education about C++. The other thing is that hopefully
most of coders who use poor practices, aren't actually developers.
Maybe we have an increased desire to see things deprecated because we see so much code with bad form on this forum.
Anyway that is my rant for today :+)
It is still being used for a bunch of important things, as far as I can see.