Go2
This page tracks the status of "Go 2".
We are currently seeking feedback on potential designs for improved error handling, error values, and generics:
Bugs
Talks
- GopherCon 2017: Russ Cox - The Future of Go
- GopherCon Russia 2018: Brad Fitzpatrick - Go: Looking back and looking forward (Go2 stuff is at about 20 minutes in)
- Sydney Golang Meetup - Rob Pike - Go 2 Draft Specifications
Scope
From talk above:
- "maybe three major changes"
- plus minor housekeep tasks
- TBD
Examples of major changes:
Examples of housekeeping:
- Open Go2Cleanup bugs (please don't add this label to things without discussion)
Compatibility
We do not want to break the ecosystem. Go 1 and Go 2 code must be able to interoperate in programs with ease.
Standard library
The standard library would probably be versioned and permit out-of-cycle updates, but be included with Go releases. Maybe "encoding/foo" become shorthand for "golang.org/x/std/encoding/foo". TBD. Some package would probably get v2 major versions, but the v1 versions would be minimally maintained, at least for security.
Roadmap
TBD