Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

I'm a bit baffled by Go.

The majority of developers I know (across several camps) strongly oppose Go, often to the point of ridiculing it.

But then I see Go support being added to everything, usually by a few key people who strongly prefer it. In fact I hear Heroku is internally adopting Go pretty rapidly.

So every time I see an announcement like this, I look up whether Go has added some kind of generics yet. And as usual, they haven't.

But to me, the worst part of this is that the whole community has Stockholm syndrome, being perfectly content to instantly defend every position the Go team makes, no matter what.



So I'm gonna make a wild guess here and assume you haven't written in Go. If you had, you'd probably find it fun and convenient. Not revolutionary, just fun and convenient. That's enough for me to like it better than python or ruby or perl.


I'm not the greatest fan of Go; the pain points of api weirdness and generics are too irritating for me.

...but you've got to admit: look at the graph. That's an exponential increase in people using go to access the service.

If you're a service based company you can't just ignore the people who use your service.

If people are using go? Provide a go library.

If you see an exponential curve of people accessing it using lua, write a lua library.

It's pretty obviously the right thing for them to do.


The graph has no numbers.


Developers & managers at Stripe decided that Go was being used often enough to spend precious dev time writing an official library which will have to be supported from here on. They wouldn't do that if the numbers didn't justify it.


That does not justify a graph with no numbers.


People often ridicule what they don't understand. People who haven't written real code in Go don't understand why it's good. And what makes it good isn't that it has X feature, so it's hard to explain to people who haven't used it.

Missing generics is not a major problem. Yes, it means you can't write a generic red black tree in the language that doesn't require type-casting. However, for real software solving real problems, you don't often actually need generics. I work on Juju, which is a couple hundred thousand lines of code, consisting of a client and networked servers deployed across an arbitrary number of machines in the cloud. The number of times we might have wanted to use generics in the codebase is approximately 2... and only one of those pieces of code is actually used by more than one type.

Sure, some software really benefits from generics. But most of the time, generics just complicate the code with little to no benefit. Many things people do with generics can be accomplished with interfaces and just writing code that has fewer assumptions about the outside world.


I write Go on a daily basis, and the lack of generics support is really not high on the list of problems that I encounter. I think it's a great tradeoff between C & say Java for the kind of programs that I write -- backend server software with moderate to high performance requirements.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: