Rust 2019 and Beyond: Limits to (Some) Growth
Graydon Hoare (via Alexis Gallagher):
Going back to the two areas of concern, then: I want to bring attention to these two areas where the project does not currently have adequate mechanisms or policies in place to control growth, that carry risks of eventual dysfunction or even crisis. In both, it is not clear to me how far from such crisis the project currently is; but either way I think it is worth acting sooner rather than later.
1. The language itself. Its definition. This is (unlike many parts of the project) a necessarily shared technical artifact. Everyone has a stake in it, and every change potentially effects everyone. Moreover, everyone needs to learn and understand a substantial part of it: people do not have the option to ignore parts they are not interested in. Even parts one wants to ignore will occur in shared contexts: documentation and teaching material, testsuites and validation material, compiler internals, formal models, other people’s codebases, overall maintenance burden, etc. etc.
[…]
2. The strains on the people working on the language. Some parts of the project can be delegated, de-synchronized, proceed in parallel with as many hands are available to work on them. Not so the shared technical artifacts. To some extent, many people (and an increasingly-many people) need to be involved in nearly all changes, and that means that there’s a lot of pressure both for everyone in that group-of-many to “keep up” with all the discourse occurring, and for the standard of what it means to “keep up” to gradually creep upwards as both more changes are proposed, and more voices contribute to each discussion.