3 ms·
> Go was released on November 10, 2009. Less than 24 hours later we saw the first comment about generics. - https://blog.golang.org/why-generics https://blog.g
by mappu 6y ago
> Go was released on November 10, 2009. Less than 24 hours later we saw the first comment about generics.
- https://blog.golang.org/why-generics https://blog.golang.org/why-generics
But it's just taken that long to come up with a good design. Most of the work has been pushed forward by core team member Ian Lance Taylor who put forward the case in https://github.com/golang/proposal/blob/master/design/15292-generics.md https://github.com/golang/proposal/blob/master/design/15292-...
This abstract proposal has been updated to link to a summary of concrete proposals at the footer, ""presented for historic reference. All are flawed in various ways""
Type functions (June 2010) - https://github.com/golang/proposal/blob/master/design/15292/2010-06-type-functions.md https://github.com/golang/proposal/blob/master/design/15292/...
Generalized types (March 2011) - https://github.com/golang/proposal/blob/master/design/15292/2011-03-gen.md https://github.com/golang/proposal/blob/master/design/15292/...
Generalized types (October 2013) - https://github.com/golang/proposal/blob/master/design/15292/2013-10-gen.md https://github.com/golang/proposal/blob/master/design/15292/...
Type parameters (December 2013) - https://github.com/golang/proposal/blob/master/design/15292/2013-12-type-params.md https://github.com/golang/proposal/blob/master/design/15292/...
But it wasn't updated with implementation proposals after 2013, most notably
Contracts (2019) - https://github.com/golang/proposal/blob/master/design/go2draft-contracts.md https://github.com/golang/proposal/blob/master/design/go2dra...