I feel fairly productive in Go, having initially decided "OK well let's just see how far I'll get without generics before giving up". Turns out the instances where I think I need generics are much rarer than I initially expected. Also, sometimes we just need a bit of template programming rather than full-blown generics. Templates let you express whatever you'd use generics for but also much more. So once you realize you won't need generics if you could just get some template programming support, the problem becomes trivial: there isn't any out-of-box support for templating but it's trivially easy to write the bit of string processing required for a pretty general reusable flexible fast poor-man's templating preprocessor, and even easier to hook that process in your build routine.
Some people use "gotgo", I rolled my own minimalist template preprocessor:
But then, I didn't come to Go with a functional-programming mind-set, which automatically means I somehow don't actually need to map-reduce-filter-collect-fold-etc. that often... ;-)
Some people use "gotgo", I rolled my own minimalist template preprocessor:
https://github.com/metaleap/go-buildrun
Now you'll see I have written some sizable amounts of Go code at https://github.com/metaleap/ and https://github.com/go3d/ yet I have only had to use that "templator" in a very few rare instances.
But then, I didn't come to Go with a functional-programming mind-set, which automatically means I somehow don't actually need to map-reduce-filter-collect-fold-etc. that often... ;-)