Fortifying the process against feature bloat

@vorner It wasn't clear to me from your post, so maybe you could spell out in a bit more detail: is the problem you're trying to solve related to:

  • pre-RFC posts on this forum
  • RFC PRs that are rejected
  • RFC PRs that are merged
  • Features that are stabilized

I see the situation for each of these as quite different!

It's probably worth reiterating that decisions about the language are ultimately made by consensus within the formal Language Design Team. Every language RFC is ultimately reviewed by that team, and must be actively pushed through the process. I bring this up because I'm a bit confused about this:

No matter how good the defenders are, they are going to let something slip from time to time

The Language Design Team thinks very carefully about the overall coherence of the language and its idioms, as well as learnability, maintainability, readability, etc. And generally speaking, one of the great things about the existing process is that RFC threads do an extremely good idea of surfacing a wide array of concerns; it's pretty rare for a truly new concern to arise late in the process.

Now, for pre-RFCs on this forum, the Language Design Team often doesn't have the bandwidth to get deeply involved. In my experience, the vast majority of pre-RFCs never "graduate", partly because this forum does a great job of surfacing issues. But I don't see that as a need for "constant vigilance"; there are many, many additional points for feedback (and that require active consent from a team of experienced language designers) before a feature ships.

As to the specific suggestions: rather than negative RFCs (which I expect to be often controversial and hard to specify clearly), that we work toward a Language Design FAQ where we can record some of the folklore knowledge about rationale for various decisions. I think such a thing would be very useful.

The suggestions for the actual RFC format seem fine, though IMO most of what's suggested is already part of the template, and it's not clear to me that additional text in the template will make much of an impact.

20 Likes