> A C++ programmer [...] may take years to get comfortable with the borrow checker.
One of my earliest / biggest revelations when learning Rust went something like:
- Rust is stupid; I've been writing code like this in C for years, but Rust rejects it.
- ...time passes...
- Oh, I understand why Rust rejects this code now.
- OH MY GOD I'VE BEEN WRITING CODE LIKE THIS IN C FOR YEARS
A conceptual borrow checker is something that every C and C++ programmer should be running in their head for every line of code that involves references / pointers that they touch. I'm happy to let the automated algorithm provided by Rust do that for me instead.
It does not require such; the Rust standard library even has a LinkedList (https://doc.rust-lang.org/std/collections/struct.LinkedList....).
> A C++ programmer [...] may take years to get comfortable with the borrow checker.
One of my earliest / biggest revelations when learning Rust went something like:
- Rust is stupid; I've been writing code like this in C for years, but Rust rejects it.
- ...time passes...
- Oh, I understand why Rust rejects this code now.
- OH MY GOD I'VE BEEN WRITING CODE LIKE THIS IN C FOR YEARS
A conceptual borrow checker is something that every C and C++ programmer should be running in their head for every line of code that involves references / pointers that they touch. I'm happy to let the automated algorithm provided by Rust do that for me instead.