I learned Rust a few years ago and without keeping up with the latest changes too much I still feel confident I can work on current code.
I learned Rust a few years ago and without keeping up with the latest changes too much I still feel confident I can work on current code.
So, I think the argument that "very special features" shouldn't be counted toward language complexity/growth is wrong, IMO. I would even say that there needs to be even more focus on those features, since they tend to be not widely known, not familar, and often there is less documentation about them, so the likelyhood that they make code hard to understand is even higher.
This is not to say that those features are unnecessary. I just don't think the justification "they are not what a pragmatic programmer will see" is good.
- sugar for quality of life improvements that benefits everyone (like ? or NLL)
- new feature that lets you do something that couldn't be done before (like impl Trait or global allocators)
- new feature that removes a special case of the semantics that can be extrapolated from already present features (like associated consts and subslice patterns)
1) It's obvious the feature is being used.
2) The feature is easy to look up without knowing what it's called, just based on how it's been used.
3) It's easy to understand what the feature actually does, with the appropriate context.