Brad Fitzpatrick | 87c535f | 2018-05-24 11:59:45 -0700 | [diff] [blame] | 1 | # Go2 status |
| 2 | |
| 3 | This page tracks the status of "Go 2". |
| 4 | |
Brad Fitzpatrick | 63dab76 | 2018-08-28 11:16:49 -0600 | [diff] [blame^] | 5 | We are currently exploring potential designs for improved error handling, error values, and generics: |
| 6 | |
| 7 | * Blog post: https://blog.golang.org/go2draft |
| 8 | * Draft designs and problem overviews: https://go.googlesource.com/proposal/+/master/design/go2draft.md |
Brad Fitzpatrick | 87c535f | 2018-05-24 11:59:45 -0700 | [diff] [blame] | 9 | |
| 10 | ## Bugs |
| 11 | |
| 12 | * [Open Go2 bugs](https://github.com/golang/go/issues?q=is%3Aissue+is%3Aopen+label%3AGo2) |
Brad Fitzpatrick | 87c535f | 2018-05-24 11:59:45 -0700 | [diff] [blame] | 13 | |
| 14 | ## Talks |
| 15 | |
| 16 | * [GopherCon 2017: Russ Cox - The Future of Go](https://www.youtube.com/watch?v=0Zbh_vmAKvk) |
| 17 | * [GopherCon Russia 2018: Brad Fitzpatrick - Go: Looking back and looking forward](https://www.youtube.com/watch?v=ZCB-g2B4Y5A) (Go2 stuff is at about 20 minutes in) |
| 18 | |
| 19 | ## Scope |
| 20 | |
| 21 | From talk above: |
| 22 | |
| 23 | * "maybe three major changes" |
| 24 | * plus minor housekeep tasks |
| 25 | * TBD |
| 26 | |
| 27 | Examples of major changes: |
| 28 | |
Russ Cox | 9d2423a | 2018-05-29 15:17:00 -0400 | [diff] [blame] | 29 | * [versioning](https://github.com/golang/go/issues/24301) |
Brad Fitzpatrick | 87c535f | 2018-05-24 11:59:45 -0700 | [diff] [blame] | 30 | * [generics](https://github.com/golang/go/issues/15292)? |
| 31 | * [simplified, improved error handling](https://github.com/golang/go/issues/21161)? |
| 32 | * ... |
| 33 | |
| 34 | Examples of housekeeping: |
| 35 | |
| 36 | * [Open Go2Cleanup bugs](https://github.com/golang/go/issues?q=is%3Aissue+is%3Aopen+label%3AGo2Cleanup) (please don't add this label to things without discussion) |
| 37 | |
| 38 | ## Compatibility |
| 39 | |
| 40 | We do not want to break the ecosystem. Go 1 and Go 2 code must be able to interoperate in programs with ease. |
| 41 | |
| 42 | ## Standard library |
| 43 | |
| 44 | 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. |
| 45 | |
| 46 | ## Roadmap |
| 47 | |
| 48 | TBD |