Golang is akin to the NoSQL movement.
Features most appreciated by Go's proponents are easy to learn and great compilation speed. Does that sound familiar: with NoSQL databases you didn't have to learn the clumsy SQL query language and they were fast due to lack of ACID guarantees.
But for years the top voted tickets on NoSQL databases were usually 1) SQL and 2) ACID compliance or 3) at least some sort of consistency guarantees (Json-schema or something).
Because initially, people weren't aware of that baby that they threw out with the bath-water, was called 'relational algebra' - a useful concept that some guy invented in late 1960ies, in times before these new kids were even born.
So have a look at Golang ticket tracker with top voted issues being:
1) generics
2) error handling
3) discriminated union types (ideally with pattern matching)
I personally don't think Go should add these features, because with those features added, it won't be fast to compile, nor will it be simple anymore. If you need these features, there are actually great programming languages already in existence. There is a space for a NoSQL programming language called Go. There will always be people who wish to screw things up out of their ignorance and they should have a language to Go to. There will always be moronic managers who think that having a simple language like Go is a the most important feature of the company, because you can always find stupid inexperienced programmers, who can at least learn Go. There will always be people who think that fast compile times lead to faster turnaround, more unit tests and faster bug squashing (as if such bugs are unavoidable). In short, there is a space for Go.
However, each time a proponent of Golang speaking of it as a 'means to everything programming language', it reminds me of people praising NoSQL databases, while having totally zero awareness of the theory of relational algebra or benefits of ACID compliance.
So if you like Golang, but would like to be objective, then first learn some 1960ies theory, like Curry-Howard isomorphism, Hindley-Milner type systems and similar things, then learn a language that uses them (the OCAML, F#, ReasonML group is a great starting point and show what languages can do for you), and then come back to praise Golang if you will.