I personally don't like c++, but I wouldn't enjoy someone going on a rust thread and shilling c++. So I won't shill rust on a c++ thread. Seems similar for Zig.
I personally don't like c++, but I wouldn't enjoy someone going on a rust thread and shilling c++. So I won't shill rust on a c++ thread. Seems similar for Zig.
I want more C++ shilling in Rust threads, and I don't think I'm alone.
Please, give me detailed examples of how you can use SFINAE or whatever to express useful misuse-resistant abstractions that can't be expressed with Rust's feature set. Please tell me about classes of bugs you can prevent in C++ that can't be similarly prevented in Rust.
Or maybe C++ isn't safer, but it's more performant? Easier to use? Easier to learn? Easier to troubleshoot and debug?
I agree that the Zig comment that started this sub-thread didn't contribute to the conversation. If we disagree, although I'm not sure we do, it's in that I'd rather call for higher-effort comments about the benefits of other languages instead of fewer comments about them.
- Game engines like Unreal and Unity
- GUI frameworks like wxWidgets, Qt, MFC, WinUI
- Being the language of choice to contribute anything to GCC or LLVM
- Being the language of choice for the native libraries ecosystem and runtime extensions to plug into Java, .NET, nodejs.
- Being the language to write drivers in macOS (IO Kit/Driver Kit), and Android alongside Java (Project Treble)
- Being avaialble out of the box on macOS, iOS, Windows, Android, Playstation, XBox, Switch SDKs and respective IDE tooling
So you can decide to deal with some of C++ flaws, and enjoy 40 years of history, or spend part of your application development budget into building a Rust ecosytem.
The C++ SDK is definitely not available out of the box on Windows. You have to install it (and update it manually!).
Not only it is automatically selected in the respective workloads that depend on it being avaiable, it gets updated.
In overall Rust’s current type system isn’t good enough to match what C++ has for numeric computations, although there have been some recent improvements such as the min-const-generics feature. I’ll probably try the language again once const generics are finished.
Empirically, that's been happening?
OP asked for:
> only fixed bugs or deprecated old features
When you get right down to that, you do end up with something like Rust. E.g. C++'s move semantics are weird because for historical reasons copying is the default. Get rid of those historical reasons, and there's no reason not to do it the Rust way.
40 years of "no big breaking changes" really is a lot of cruft.
memcpy everywhere is definitely not the best answer to every problem
Copy : Clone :: Move : Relocate
I.e. there would not be the presumption that everything is automatically movable or coppiable, there would be magic traits to indicate memmove / memcpy and friends, and then plain old stdlib super traits for user-defined cloning and relocating.
This is the the right design for move constructors, full stop.