Why it's worth learning Go(medium.com)
medium.com
Why it's worth learning Go
https://medium.com/@rjzaworski/why-its-worth-learning-go-1df48d9dcc48
14 comments
> 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.
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.
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.
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".
I think if it does a very poor at keeping "the worst ones" from "fucking it up".
Lots of different things go on in Google, that's why they use Java, Python, C++, JS and yes also a bit of Go amongst probably several others.
Go is a heavy player in the Kubernetes space.
For those in the 'Enterprise computing' business, learning a little Go won't be harmful.
For those in the 'Enterprise computing' business, learning a little Go won't be harmful.
There are many reasons to learn Go but even the author didn't emphasise on performance because it is not. There are many dynamic compilers which produce faster binaries than go. I think the best reasoning in the blog was A-Grade standard lib. That is something not all available new languages enjoy. But Go from the early days had good standard lib support. Go comes with batteries but then so does Chicken scheme.
From generics to sets and several others, I think there are enough reasons to consider that go does not "come with batteries", especially when you compare it with almost any other modern (>90s) language.
Can you please specify which are the dynamic compilers which produce faster binaries than Go? I’m just curious.
If your needs align with that somewhat, you might want to use Go. If your needs are different, you should stay the hell away from it.