name: Language Change Proposals about: Changes to the language title: "proposal: Go 2: " labels: Proposal Go2 LanguageChange
Author background
- Would you consider yourself a novice, intermediate, or experienced Go programmer?
- What other languages do you have experience with?
Related proposals
- Has this idea, or one like it, been proposed before?
- If so, how does this proposal differ?
- Does this affect error handling?
- If so, how does this differ from previous error handling proposals?
- Is this about generics?
- If so, how does this relate to the accepted design and other generics proposals?
Proposal
- What is the proposed change?
- Who does this proposal help, and why?
- Please describe as precisely as possible the change to the language.
- What would change in the language spec?
- Please also describe the change informally, as in a class teaching Go.
- Is this change backward compatible?
- Breaking the Go 1 compatibility guarantee is a large cost and requires a large benefit. Show example code before and after the change.
- Before
- After
- Orthogonality: how does this change interact or overlap with existing features?
- Is the goal of this change a performance improvement?
- If so, what quantifiable improvement should we expect?
- How would we measure it?
Costs
- Would this change make Go easier or harder to learn, and why?
- What is the cost of this proposal? (Every language change has a cost).
- How many tools (such as vet, gopls, gofmt, goimports, etc.) would be affected?
- What is the compile time cost?
- What is the run time cost?
- Can you describe a possible implementation?
- Do you have a prototype? (This is not required.)