Programming languages (and programming style) have always been a matter of individual taste and preference, mostly informed by previous experience and habituation. Some people dislike Go; some love it. It depends on how well you can adapt to a different language. This applies to all programming languages. There is no such thing as a perfect programming language.
In the 6 years since Go was born, it has skyrocketed to the top of the popularity charts: #10 at IEEE Spectrum and CodeEval, #11 at HackerRank, #15 at Redmonk, #19 at PYPL and TIOBE. I expect Go to become the first programming language to break into the top tier for the first time in 20 years!
Clearly, a lot of people love this language. I love it, too, and in my career, I’ve used many disparate programming languages such as FORTRAN, Tandem TAL, C, C++, C#, Objective-C, Java, Smalltalk, Python, DCL, and assembly language. I’ve never had a problem with any of these languages. I can adapt very well.
There are two principal schools of programming language philosophy. One is that a language should be as simple as possible to minimize the cognitive burden on the developer. The other is that a language should have as many features as you anticipate a future need for. The latter leads to complex languages like C++, Scala, Rust, and Swift.
I hold to the former philosophy. Smalltalk and Scheme, for example, are beautifully simple languages. Their incredible power comes from their extensibility, not a “rich” feature set. Python sort of falls into this category, as well.
While Go is not extensible in quite the same way, it’s still very powerful and it can be used to write complex, large-scale software with greater ease, exactly the use case Google envisioned for it. This is principally why Go is so popular.