After almost 13 years since its first public release, the Go programming language is adding generics to its specification, called type parameters. This is a unique situation where a relatively popular statically typed programming language tries to add such a major change to its specification. In this presentation we'll look into how Go's type system is designed and how the authors added generics without breaking backwards compatibility. We'll also talk about what kind of abstractions can and cannot be expressed with and without generics.
Presentation will be given with perspective of a person who really likes type safety provided by modern expressive languages like Scala or Haskell.