Russ Cox August 27, 2018 This overview and the accompanying detailed draft design are part of a collection of Go 2 draft design documents . The overall goal of the Go 2 effort is to address the most significant ways that Go fails to scale to large code bases and large developer efforts. One way that Go programs fail to scale well is in the writing of error-checking and error-handling code. In general Go programs have too much code checking errors and not enough code handling them. (This will be illustrated below.) The draft design aims to address this problem by introducing lighter-weight syntax for error checks than the current idiomatic assignment-and-if-statement combination. As part of Go 2, we are also considering, as a separate concern, changes to the semantics of error values , but this document is only about error checking and handling. To scale to large code bases, Go programs ...