-
Notifications
You must be signed in to change notification settings - Fork 18k
proposal: all: structured framework for Go language proposal discussions #71741
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comments
this is way more work for everyone to track and moderate over multiple threads, people can't even keep their comments in discussions on topic, I don't see how this will be any better. |
@seankhliao — Thank you for commenting.
Currently people are not provided guidance by the Go team for any other action they can take, so they comment. The reason I believe it could be any better is:
As my proposal points out "the current approach ... has proven consistently ineffective." So not trying something different will certainly not result in anything improving. |
If people can't take simple instructions like "read the proposal first", how do you expect them to read through this wall of text, and the proposal? note that it's possible to keep discussions on track with aggressive moderation, but it takes a heavy toll on maintainers. |
They would not need to. This is all the proposal would need to say:
Then both the Go team and those of us who know the ground rules can nudge people in the right direction any time someone start suggesting additions or alternatives.
Per this framework, those comments could be immediately told they need to follow the framework that instructs them how to make comments, and their comments that did not follow the framework could soon be hidden after they have been given enough time to see that feedback. Further, the clear directive that they need to "take their comment elsewhere" as it will soon be hidden would likely keep others from piling on to the drive-by comment with their own follow up comments. If I am not mistaken the sole drive-by comment is not itself what causes excessive noise but the fact that each drive-by comment often attract tens of other comments.
At first, maybe.
But if it became an expected norm within the community, the community would almost certainly enforce it for you. Peer pressure for violating an objective community norm when there is a clear alternative is usually a very powerful method of self-enforcement.
The problem with aggressive moderation is when moderation is subjective. When it is objective the community supports the moderator, but it takes a toll when moderation is subjective because reasonable people can and will disagree. BTW, I do hope you can see that I really am trying to offer positive input to help improve the experience the Go team has when having to deal with all of those of us who just ignore things. That said, if I have not made my case to you for why this would be different then no need to reply. You considered the proposal and that was what I asked. I do hope others who are involved in making proposals on behalf of the Go team will also give it consideration. P.S. One final rhetorical question though; would it hurt to try it on the next discussion and see if helps or not? If it actually does help, wouldn't that be a good thing? What is the worst that could happen? |
This is a terrible amount of toil to inflict upon maintainers, I don't see how this could be sustainable. |
There in no reason it would not need to be inflicted upon the maintainers as proposed by the framework. All community member could be empowered by the Go team in advance to tell them. As I said, peer pressure for violating objective community norms can be a very powerful method of self-enforcement. |
Proposal Details
This proposal is the result of this dialog: #71460 (reply in thread)
Abstract
This proposal presents a framework for managing community feedback on Go language proposals, particularly those involving contentious topics like syntax changes. The framework provides structured channels for both direct feedback and suggested modifications, acknowledging both the Go team's need for focused feedback and the community's natural desire to suggest improvements. While specific implementation suggestions are provided, the Go team maintains full authority to modify any aspect of this framework based on their experience and needs.
Background and Motivation
The Go team faces a recurring challenge when presenting proposals for language changes: despite explicit requests to focus discussion on specific aspects of a proposal, community members frequently suggest modifications and alternatives, leading to overwhelming threads that become difficult to manage effectively.
This pattern emerges from several fundamental factors:
First, programmers develop an intimate relationship with their programming language through daily use. The syntax and semantics become deeply personal, leading to strong emotional investments in how the language evolves. This investment manifests in two primary ways: developers who have experienced friction with certain language aspects often envision specific improvements to address their pain points, and developers who have developed effective patterns within current constraints may resist changes that could make their approaches less attractive to their teams.
Second, the current approach of requesting that community members avoid suggesting modifications while providing feedback has proven consistently ineffective. This mirrors situations in other domains where attempting to restrict natural human impulses to suggest improvements often leads to community frustration and reduced engagement quality.
Proposed Solution
Rather than fighting against the natural inclination to suggest improvements, this framework creates structured channels for both direct feedback and modification suggestions. The following implementation approach could be modified based on the Go team's needs and experience.
Core Framework
1. Proposal Classification
For proposals that might generate significant discussion, particularly around syntax or other contentious topics, the Go team could designate them as following this framework. A clear section at the top of such proposals would explain the framework's rules and expectations. Third-party proposals could also use this framework, as some community-initiated proposals can generate similar levels of discussion.
2. Direct Feedback Channels
Proposals should clearly specify acceptable types of direct feedback, such as:
3. Change Proposal System
When community members wish to suggest modifications, they would be expected to create a new issue with one of two designations:
Change proposals should:
4. Discussion Management
The original proposal should maintain separate threads for amendments and alternatives:
Two pinned comments created immediately after the proposal:
All discussion of modifications should occur in the respective change proposal issues, not the main thread.
Community members could assist in maintaining thread focus by directing modification discussions to the appropriate channels.
5. Collaboration Framework
Those proposing changes should support collaborative improvement through a clear structure:
Proposal Maintenance:
Collaboration Process:
6. Go Team Commitments
The framework suggests the following lightweight approach for the Go team:
Implementation Approach
The framework could be implemented with minimal overhead through:
Template Creation:
Status Tracking:
Community Support:
Expected Benefits
This framework should provide:
Improved Signal-to-Noise Ratio through structured channels for different types of feedback
Enhanced Community Engagement by providing clear paths for constructive contribution
Efficient Process Management by leveraging community self-organization while maintaining Go team oversight
Success Metrics
Success could be measured through:
Requested Action
The Go team is respectfully asked to:
Next Steps
Upon acceptance, implementation could proceed — with assistance from this proposal's author, if requested — through:
The Go team may of course modify the approach proposed based on their needs and resources.
The text was updated successfully, but these errors were encountered: