> Understanding ownership transfer and management can be one of the most confusing and complex aspects of Rust. It is crucial to consider the program's execution flow and manage mutable and immutable variables in memory to avoid getting lost in the code. Mastering this, along with working with threads, was one of the most time-consuming tasks for the team.
I want to add that "ownership" isn't new. When working with systems languages without a GC, ownership was always there, you just kept track of it mentally, rust may be the first to make you aware of it by enforcing it at the compiler level, essentially making you aware that you are doing something stupid.
Adopting rust's ownership model was truly "zero cost" coming from a C/C++ background as we were already doing it.