Rust's Compiler Crushes C/C++ in DX Showdown: Is the 'never' Type an Essential Tool or a Bloated Hack?
Rust's compiler tooling earns high praise, with commentators noting its helpful error messages and direct documentation linking far surpass those in Bash or C/C++. Furthermore, its adoption in massive codebases like Android shows measurable security gains, citing vulnerability density reductions exceeding 1000x compared to C/C++.
The core technical fight centers on the `never` type. Some users, like 'SorteKanin', insist it is a foundational type-theoretic necessity for modeling non-yielding control flow exits. Opponents, citing users like 'thingsiplay', dismiss it as an unnecessary complication, arguing `Option<T>` suffices. A separate, fierce argument rages over time arithmetic: should `std::time::Duration` enforce complex time zones or stick to simple, naive 24-hour calculations for basic logging?
The consensus favors Rust's existing tooling advantages for developer experience. However, the community consensus is fractured on deep language mechanics. While the project seems to favor pragmatic merges (as suggested by 'TheTwelveYearOld'), significant structural disagreements persist regarding niche features like `never` and the correct foundational model for elapsed time versus calendar time.
Key Points
The compiler's error messaging significantly improves developer experience over C/C++/Bash.
Commenters like 'cows_are_underrated' scored this high, calling the helpfulness superior to older languages.
The 'never' type is a necessary type-theoretic construct for control flow exits.
Advocated by 'SorteKanin' as representing the empty union, countered by those calling it an unnecessary hack.
For string manipulation, converting `String` to `Vec<char>` before editing is the safest bet.
User 'jwr1' stressed this approach circumvents complex UTF-8 encoding issues.
The standard library should mandate naive 24-hour calculations for duration types.
Some favor simplicity for logging ('sugar_in_your_tea'), while others demand full timezone rigor.
The current crate naming system needs overhauling to use proper domain-based namespaces.
Critiqued by 'onlinepersona' as forcing a flawed namespace model lacking universal structure.
Adopting Rust in Android provided measurable security improvements over C/C++.
Cited measurable vulnerability density reduction of over 1000x by 'shape_warrior_t'.
Source Discussions (21)
This report was synthesized from the following Lemmy discussions, ranked by community score.