Hacker News new | ask | show | jobs
by zinid 2833 days ago
> From my perspective it’s one of the very few general purpose languages (along with erlang)

Maybe I'm missing something, but since when Erlang is a general purpose language? Erlang was designed for a quite narrow niche and feels very well there, but Go... well, honestly, I don't understand what Go was designed for.

3 comments

I don't think is fair to compare Go to Erlang. Erlang is really designed to do 4 things: concurrency, low latency, fault tolerance and distributed systems and it shines there. Go is indeed a general purpose language to me.
I’m using general purpose in a very soft and squishy way. I generally mean languages that can comfortably do a few different things and not the hyper specialized cases like Matlab.
Go was designed for data munging via gRPC.
One of the clear design needs for go was “you have a crap ton of code you need to write, and you need to aggressively parallelize the work over a bunch of mixed skill devs, without the worst ones fucking it up, and without the best going off the reservation and making something that can’t be understood later.”

Personally that sounds like my own hell, but that’s the world Google lives in.

Despite Pike's appalling contempt in https://talks.golang.org/2012/splash.article I'm not convinced this is a problem Google actually has. They're faced with perverse incentives but they're far from stupid.
Pike’s attitude has been a large factor in me not bothering with Go.
Maybe with the exception of the old JS callback hell I have never seen any other language deteriorate code into spaghetti projects more quickly than Go with channel and duck typing abuses.

I think if it does a very poor at keeping "the worst ones" from "fucking it up".