Whether similar-but-not-quite-same features should have same or different names is context dependent:
- “traits are like Java interfaces” is actually a very helpful explanation to novices who try (and fail) to do OOP in Rust. Even though traits in some ways aren’t like interfaces, it sets close-enough frame of mind to get started.
- Rust’s
enumis different from C’senum, but it doesn’t cause confusion. - “References” on the other hand are suuuper confusing to C++ programmers who expect them to be usable like regular pointers. I’d prefer
&/&mutto be called something completely different, like “read permission”/“exclusive read/write permission”.