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?


  • 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?


  • 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.)