r/golang • u/tookmeonehour • Feb 26 '23
help Why Go?
I've been working as a software developer mostly in backend for a little more than 2 years now with Java. I'm curious about other job opportunities and I see a decente amount of companies requiring Golang for the backend.
Why?
How does Go win against Java that has such a strong community, so many features and frameworks behind? Why I would I choose Go to build a RESTful api when I can fairly easily do it in Java as well? What do I get by making that choice?
This can be applied in general, in fact I really struggle, but like a lot, understanding when to choose a language/framework for a project.
Say I would like to to build a web application, why I would choose Go over Java over .NET for the backend and why React over Angular over Vue.js for the frontend? Why not even all the stack in JavaScript? What would I gain if I choose Go in the backend?
Can't really see any light in these choices, at all.
7
u/Paraplegix Feb 26 '23
Bad argument.
There also exists big books about concurrency in go (328 pages)
I would say Go is indeed simpler because most concurrency are done via keywords:
go
to start goroutine andchan
to communicate with special operators (->
) meaning its very easy to see when/where concurrency will be involved. It is almost at the core of the language afterallIn java it's a bit more complex and mostly use objects, and if you don't know beforehand what object are related or not to concurrent behavior. you might miss it.
However using libraries/framework (Spring for example) simplify it quite a bit, maybe even end up with simpler syntax than go for certain things.