Perhaps you could explain how this feature is a sprawling mess exactly?
In my opinion, not only is the feature easy to understand for beginners, but it also :
1) Simplifies code - less code to write means less code to have bugs
2) Prevents people making mistakes - incompatibly defined comparison operators wont happen with <=>
3) Gives a speed boost - in some algorithms it's faster to do a<=>b rather than a < b and b > a.
You could find a deep dive article just as long about the minute details of comparison for practically any language.
Sure, it adds the `<=>` operator but I think once you've been explained once what it does it's not to hard to reason about it. That still leaves the problem of technical debt of course: for the decade to come C++ devs will have to deal with both the legacy and the modern version of comparison operators and they'll have to learn to understand and deal with both.
The direction of the language is towards greater cleanliness and consistency.
That's great for people who work on a codebase, but makes bridging the gaps between C++ codebases harder with every passing year. And make no mistake: I 100% guarantee there will be bugs arising from the mixed use of <=> and traditional operators.
But you can also be a little curious as of why some industries are using C++, because if you look hard, there are not that many language like C++. Rust is an exception, sure, but it's very recent and it's not like Rust can pretend to replace everything that is done with C++.
Do you mean in term of "you can't replace decades of base code in a single day", or do you mean that there are – according to you – scope where C++ is definitely better than Rust?
Most of those are in progress and will materialize eventually.
* const generics: landing relatively soon but still not there
* const/constexpr: support is getting better , but is still very limited right now
* lack of higher kinded types prevents things that are quite easy to do with templates. The GAT (generic associated types) is being worked on but nowhere near completion
* obviously the library ecosystem is tiny and immature compared to what C++ has to offer
Feature wise I believe that Rust will be on somewhat equal footing to C++ in a few years, at which point I won't see any reason to use C++ over Rust, except if you rely on certain libraries - or in a domain where Rusts trait system is just inferior to classes + inheritance.
I do embedded security. For context, that means I use C++ when raw performance isn't that important-- because if it were, it would be in verilog and baked into the silicon.
IMO this is because Java and python are driven by open “community processes” where anyone can influence the language. C++ standards are influenced by full members of some kind of iso national bodies, from what I remember.
The biggest issue is that the language is first defined by a standard and there are multiple implementations, which makes it much harder to iterate, and, as it is hard to get any moderately complex proposal through, often you can see the lack of an overall unified design.
I do believe that c++ lacks a strong benevolent dictator figure. Stroustup abdicated his position probably too early.
The c++ standards need to focus on adding to developer productivity by incorporating micropython to make it more accessible.
The spaceship operator is exactly an attempt to make the language more accessible, but of course is being dismissed here as anything c++.