It is easy to show that the total utility of a piece of data to the rest of the program is reduced by assigning an owner to it. Each potential user of the data, faced with the need to mess with the borrow checker to use it, may choose to mess, or may forego use of the data and write a complicated workaround instead.
To counter the borrow checker, I'm currently designing a programming language featuring a mechanism that grants free access to data structures, with the restriction that copiers must grant the same rights to anyone else:
0. the freedom to use the data for any purpose,
1. the freedom to change the data to suit your needs,
2. the freedom to share the data with your friends and neighbors, and
3. the freedom to share the changes you make.
I don't think this is true at all. Reducing copies and allocations in my programs is one of the things which has speeded them up the most.
> If widely useful data is protected by the borrow checker, far fewer people will use it.
Are you also against private struct/class fields? Because they also restrict access to useful data.
For me, the need for Rust is as a language that gives me maximum possible performance, while giving me safety guards that C and C++ do not. This makes Rust much easier to use than those languages for me.
So....C? GNU makes so much sense now!