Seems that 2014 won't be a good year for Go on HN. Same old story as with Node and Mongo. First they ignore you, then they praise you, then they hate you.
- New technology is introduced. Nobody's really heard of it or used it, so beyond a few "Look at this new thing!" articles, nobody talks about it.
- The technology gets some penetration. New users pick it up, probably because it solves some issue or irritation they have. They write about how the technology helps to deal with it, or why it's interesting; if it didn't/wasn't, they'd probably not bother using it, and would be pretty quiet about the whole thing.
- If the technology made it this far, there is an explosion in popularity as more people pick up the tools and use the technology. Typically this results in quite a few people using it in the wrong way, or because it's the current 'hot stuff' (rather than because it will solve a particular problem), or maybe picking it up a little bit too early. Lots of these people will write about how the technology sucks, or how it doesn't solve particular problems. That's fine; it's the public knowledge-gathering phase, and although there will inevitably be a lot of negativity, other people will discover the benefits, and the technology will frequently evolve to address popular concerns.
- The fourth step, that you didn't mention, is that the technology and discussion around it becomes more "mature" - it's widely-used, everyone's more-or-less aware of the pros and cons. There will be the occasional post called "X Sucks, I'm Moving to Y!" or "Why I'm still using X and not Y".
tl;dr: that's the way it goes - it takes a while for new technology to work out the kinks and for the community to understand where and how it should be used. And while that happens, they'll talk about it.
Once you've embedded the Hype Cycle in your consciousness, it's amazing how often new technologies follow it. Also interesting just how worked up people get at each peak and trough... :)
There's always been blogs complaining about Go and the generics issue raised in this blog is something that crops up in every discussion about Go.
The problem with heavily hyped languages is that some people jump on the bandwagon without really thinking about the problem they're having. And this is exactly what the author of this article seems to be doing. If you're having to convince your clients to maintain a project in a language neither of you have developed in and you guys already have experience in other languages, then the question should be "what will I gain from switching to Go". The author's justification seemed to be "It's hyped online" rather than any technical justification; and that strikes me as a poor decision from the start.
What?! I you might want to reread the article and then read the author's comments here and his other Go articles.
The author clearly knew about Go's lack of generics and was quite familiar with the language. After stepping away from the language for a while he decided to give it another try in a project where he thought the lack of generics could easily be worked around via Go idioms. He found out that the lack of generics _did_ hurt more than expected and wrote about that part in a way that projected his frustration.
Go never intrigued me anyway for that matter. It's supposed simple syntax was not enough of a motivator for me to chose it over a higher level language (Clojure, Scala, Etc) that requires a bit more elbow grease to become proficient it.
The way I see it, there's very little compelling about Go to outweigh its shortfalls and I don't see it getting mainstream any time soon, if ever. If languages were stocks, I would have shorted it long before the HN hype started. Then again, I feel pretty much the same about the whole crop of hip languages du jour (scala, clojure, erlang, haskell, ...)
For those of us coming from Python, Perl, etc., Golang brings performance and concurrency in a format that is easy to pick up and integrate.
I have not touched C in almost 20 years, but I was able to write a concurrent program in Go that outperformed a similar multiprocessed Python script by about 5X in roughly one day. Go does not have the same library depth as Python, but the stdlib is pretty good.
The thing about Go that is similar to Python is _my_ performance is good, and I don't have to expend much effort in boilerplate code, or learn a coding approach that is unfamiliar, yet I still get relatively high performance.
Go won't replace Python for me, until things like matplotlib and Pandas become available, but it make an excellent addition to the toolkit.