I get the impression the Go devs have been stoking the flames a bit by refusing to countenance the extension of the language even into areas where it was clearly lacking.
I get the impression the Go devs have been stoking the flames a bit by refusing to countenance the extension of the language even into areas where it was clearly lacking.
Again from an outside perspective, it also seems that these camps talk about their viewpoints to outsiders more than to each other.
Personally, I always thought the reality is probably closer to "Not adding generics prematurely is a design feature, and it hasn't moved forward yet since the core team doesn't need it enough, and no proposal developed critical mass of community support to consider it appropriately vetted."
We're not talking about wanting the new iPhone or a Tesla here, it's about wanting something that simplifies code / improves the expressiveness of a language.
They've been researching ways to add generics to Go for a long time, here is some background:
What does "right" mean? All kinds of languages, even pet projects, managed to implement them just fine.
Except if we mean "perfect, in a way that avoids all engineering tradeoffs".
But why would Generics especially need to be perfect in a language full of other engineering tradeoffs?
As a Go programmer since the 1.0 days, the concept of the GOPATH that existed when I started using the language is long gone.
In my ideal world, I should be able to clone a go project anywhere on my system, fetch the dependencies from the internet, yes the internet, because its 2017. (if you're that concerned with security fine, include them in your repo) but I should be able to call go build in that directory wherever it is.