Thanks for this explanation! I’ve never done significant Java programming, and wasn’t aware it had a similar distinction to ours. (Though I’m guessing their String is more like
Arc<str> with automatic cloning, which makes the divide a little bit different from where it is for us).
I can see that it is confusing coming from a language with String/StringBuffer for String in Rust to be more like StringBuffer. Even still I agree with @burntsushi that this difference is narrow enough that the confusion from having both names coexist overwhelms the difference.