C# is just as good as Java on all accounts.
Rust is just as good as Java except the talent pool is yet growing.
C++ is just as good as Java except the language has no ceiling and the talent pool is shrinking.
C# is just as good as Java on all accounts.
Rust is just as good as Java except the talent pool is yet growing.
C++ is just as good as Java except the language has no ceiling and the talent pool is shrinking.
This is automatic memory management’s greatest “gift”.
Garbage collection is over-valued.
CRUD in Rust is not as low-level as in C.
> making low level detail leak into its module contracts
There is the risk, yes. Design a good API, and it won't happen. Onboard 50 people who don't care, and you'll have all sorts of low-level thinking when it isn't appropriate. This is the risk of a language having no ceiling: Suddenly someone is spending the "novelty budget" without asking.
And I’m talking strictly about memory management here, sure Rust is a very cool language (it is my go to choice for low-level programming) and has a strong enough type system to actually make these refactors safe, but it doesn’t change the fact that this is simply of no concern with automatic memory management.
Java's GCs are superior to what C# offers by the way (and I like both languages).
You could say a similar thing for Erlang and its Dialyzer.
Yet other ecosystems manage.
The point I want to make is:
While that's an argument in favor of Java, it's not an argument against everything but Java.
Since 2016 .NET is running on Linux.
C++ should be something of a last resort, especially when you are given a choice.