Вот собрал себе gcc 4.7, там есть искаропки компилятор Go. (справедливости ради, он там есть начиная с 4.6). Немного с Go поигрался соответственно. И таки разочарован. Там нет типобезопасных контейнеров и способов из сделать. Вот например как работаем с вектором.
import "container/vector"
type mytype struct {
a, b int
}
func main() {
v := new(vector.Vector)
v.Push(mytype{1, 2})
value := v.Pop().(mytype)
}
Как говорится, welcome back to java 1.4.
Причем в стандартной либе контейнеров подобного рода несколько штук.
Это к вопросу о нужности "обобщенки".