5 ms·
Rust as a language is in a funny place — somewhere between C and Haskell. Whenever Rust adds new features, C users panic "it's going to end up like C++!", but
by pornel 5y ago
Rust as a language is in a funny place — somewhere between C and Haskell.
Whenever Rust adds new features, C users panic "it's going to end up like C++!", but at the same time from Haskellers' perspective Rust's type system is still not advanced enough.
As the article explains, it's incredibly hard to add these high-level features while still preserving "portable assembly" aspect of the language.
- api 5y agoRust occupies the C++ space, and is a massive improvement over C++. It’s type system is relatively complex but in practice is simpler to use than C++ once you learn it and far less bug prone. The dogmatic C partisans who insist on building houses out of sand with tweezers will never like it. It’s basically C++ rebooted with ideas from Haskell, Go, and other modern languages. If Rust completely displaced C++ that would be a huge win for productivity and security / reliability.
- anacrolix 5y agoThere's nothing modern about Go.
- api 5y agoYes there is: simplicity and lack of needless cleverness. Overengineering is the great plague of modern software. Rust contains a little bit of needless cleverness but most of its complexity is essential to the problem domain of low level systems programming and intrinsic safety. Go operates at a different level with a fat library (almost a VM) and garbage collection, allowing for a very simple type system. Both languages are modern but fill different niches. Rust is new C++ while Go is closer to Python or early pre-complexity-orgy Java.
- Sharlin 5y agoOn the other hand, the type system of vanilla Haskell is not especially powerful compared to current stable Rust’s. It’s pretty much all GHC extensions where the real magic is.