title: Why no generics in Go?
body: <p>Disclaimer: I've only played with Go for one day now, so there's a good chance I've missed a lot.</p>
  
  <p>Does anybody know why there is no real support for generics/templates/whatsInAName in Go? So there is a generic <code>map</code>, but that's supplied by the compiler, while a Go programmer can't write her own implementation. With all the talk about making Go as orthogonal as possible, why can I USE a generic type but not CREATE a new one?</p>
  
  <p>Especially when it comes to functional programming, there are lambdas, even closures, but with a static type system lacking generics, how do I write, well, generic higher order functions like <code>filter(predicate, list)</code>? OK, Linked lists and the like can be done with <code>interface{}</code> sacrificing type safety.</p>
  
  <p>As a quick search on SO / Google did not reveal any insights, it looks like generics, if at all, will be added to Go as an afterthought. I do trust Thompson to do way better than the Java guys, but why keep generics out? Or are they planned and just not implemented yet?</p>