Alright, I think you make a convincing point with NLL and it's quite probable that it will prove to be better understandable for everyone.
I'm fairly sure all of the problems with mut that you mentioned are limited to beginners or at least become significantly less of a problem with more experience (and not a lot thereof, because the problems mostly sound as singular facts to be learned once and for all).
Why would I as a non-beginner be confused, e.g. about let binding value being immutable only for the duration of the binding (save for interior mutability)? Why would I forget that &mut means unique reference? Etc.
The only problem with mut that really persists with time is the one of being forced to type mut, and I'm arguing that it's actually a feature. ![]()
I am arguing only that immutable-by-default is not an obvious universal winner, not that it doesn’t have benefits.
Well, let's rephrase it to "there's no hard unyielding evidence whether immutable-by-default has net positive or net negative influence no matter how people feel about it, so there's nothing you could say that could convince everyone", and then I will be tempted to agree. ![]()
But many people do appear to feel good about it, so maybe there is a solid reason behind it, which (in the absense of scientific studies and slim chances of them appearing in near enough future) probably should count for something, as opposed to, say, being handwaved away as a mere matter of "attitude" that unfortunate language developers are forced to have to placate.
Anyway, I think we have come to a fairly accurate understanding of each other's positions. Now let's see if other people provide some fresh input on the issue at hand. Have a nice day!