Go 2 Draft Designs

As part of the Go 2 design process, we’ve published these draft designs to start community discussions about three topics: generics, error handling, and error value semantics.

These draft designs are not proposals in the sense of the Go proposal process. They are starting points for discussion, with an eventual goal of producing designs good enough to be turned into actual proposals.

Each of the draft designs is accompanied by a “problem overview” (think “cover letter”). The problem overview is meant to provide context; to set the stage for the actual design docs, which of course present the design details; and to help frame and guide discussion about the designs. It presents background, goals, non-goals, design constraints, a brief summary of the design, a short discussion of what areas we think most need attention, and comparison with previous approaches.

Again, these are draft designs, not official proposals. There are not associated proposal issues. We hope all Go users will help us improve them and turn them into Go proposals. We have established a wiki page to collect and organize feedback about each topic. Please help us keep those pages up to date, including by adding links to your own feedback.

Error handling:

Error values: