Go 1.15 holds off on major changes

Proposals for the next version of Go include new Vet checks and a minor language adjustment

With production release Go 1.14 due this month, the Go development team anticipates that the follow-up release, Go 1.15, will focus on minor adjustments rather than major changes. Go 1.15 is scheduled to be released in August. 

The Go team decided it would be better to hold off on major changes until a long-term plan is mapped out. Instead, just three proposals are eyed for Go 1.15:

  • Diagnose string (int) conversion in go vet. Initially planned for Go 1.14, this change addresses confusion over string (int) conversion. Rather than removing the conversion, the plan calls for starting with a vet error.
  • Diagnose impossible interface-interface type assertions in go vet.
  • Constant-evaluate index and slice expressions with constant strings and indices. Currently, indexing or slicing a constant string with a constant index, or indices, produces a non-constant byte or string value. But if operands are constant, the compiler could constant-evaluate such expressions and produce a constant, possibly untyped result. Adjustments will be made to the spec and compilers.

A recent Go team bulletin describes these proposals for Go 1.1.5 and also reiterates the primary goals for Go overall, which include improvements to package and version management, better error handling, and generics.

A previous attempt to improve error handling, the try proposal for a built-in error check function, met with strong opposition and was abandoned. Generics had been called out as a major theme for the Go 2 release, allowing parametric polymorphism with type parameters.

The team noted that module support in Go is in good shape and improving. And while there have been requests for enums and immutable types, these ideas have not yet been sufficiently developed or deemed urgent enough to pursue.