3 ms·
I mean, this is true of any low-level language like C++ or C. Manual memory management. I think it does drive a lot of people nuts who have only ever worked wit
by mlsu 2y ago
I mean, this is true of any low-level language like C++ or C. Manual memory management. I think it does drive a lot of people nuts who have only ever worked with GC languages. I think your reaction to Rust depends on where you approach it from:
Abstract languages: "Ahhh! String, &str, Cow<str>!?"
Low-level languages: "How come this isn't compiling? Oh, wow, I wouldn't have caught that. Cool!"
I think at this time, there are a lot of people who are getting into Rust from the "top of the stack", so it is their first foray into manual memory management.
Many critiques I have seen of Rust is that it is "too complex" for "no good reason." I think those seem superficially valid, especially if you compare Rust with C. "Just don't use after free bro, skill issue" is easy to say if you've only ever worked on a small, short-lived C codebase with one developer on it. Once you start working on a very large codebase with many contributors, people coming and going, "skill issue" is absolutely nonsensical. The borrow checker is about memory safety; but looking at it more broadly, at the sort of ecosystem-level view, it is about constraining individual programmers. Limiting what an individual programmer can do with the memory, and guiding them towards using memory safely/well, with good compiler warnings.