this post was submitted on 11 Jan 2024
34 points (87.0% liked)
Rust
6130 readers
60 users here now
Welcome to the Rust community! This is a place to discuss about the Rust programming language.
Wormhole
Credits
- The icon is a modified version of the official rust logo (changing the colors to a gradient and black background)
founded 2 years ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
view the rest of the comments
That hasn't been my experience at all, and it's been for both large refactors as well as complete rewrites.
Rust does care about some things like not having self referential structs or recursive types, but those are super easy to fix. Rust pushes you to not write code in the same way as other languages, and IMO that's a very good thing. It's not at all about systems stuff or memory layouts.
Rust's ownership system is used to simply enforce correct usage of APIs. Memory safety is simply a subset of correctness. Many other languages, Java for example, don't enforce thread safety, so you have to be really careful when parallelizing your code. In Rust, you could hire an intern fresh out of high school and I can know 100% that they're not making mistakes with sending data across threads that isn't thread safe.
Another example is file handles. Rust is the only mainstream language where it's not possible to read from a file handle after it's been closed. That has nothing to do with memory layout or systems concerns. That's a basic invariant across all languages, and Rust stops you from making a mistake. Same with things like mutating an iterator during iteration and all kinds of other stuff.
That does mean it is more painful upfront, but that's a good thing. You'll run into many of the same problems in other languages, but at runtime, which is much worse.
As for graphs, I doubt the vast majority of programmers need to build custom graph structures.
You're of course free to disagree. Just weighing in with my perspective.
I appreciate your perspective, thanks for taking the time to share it!
I also agree with most of your points in favour of Rust. It is clearly the biggest programming language design breakthrough in decades.