I never found the borrow checker to be that hard to work with. For a start, if you&#x27;re developing a systems language in a modern way, (say C++11&#x2F;14) you&#x27;re already used to thinking in terms of move semantics, const refs and shared vs unique pointers.<p>Secondly, Rust&#x27;s compiler gives INCREDIBLY detailed explanations of what the borrow checker doesn&#x27;t like, where the conflicting scopes begin and end, and helpful suggestions of what to do to make it work.