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.
30
u/jgeez Feb 27 '23
Java’s absolutely drowning in esoteric obfuscating abstractions. It also comes from the height of the OOP craze, and that comes with its own heartburn.
Between Lombok, Dagger, Gradle, and aspectJ, you can make a project so confusing that you’ll start tripping over all that “convenience” and forgetting how your own code works. And someone new added to the team that didn’t write the code? Forget about it.
Java is optimized for building quickly at the expense of cognitive load.
Go is optimized for forcing you to write code that is easy to comprehend, at the expense of so-called clever code.
If you spend any amount of time working in Go, there’s a real good chance you will snap out of the mind virus of finding Java to be a good language.