I am a senior java developer in the cloud/distributed arch/ microservice area.
I’ve touched on golang in the past, but not learnt it in any formal/extensive way.
I see it cropping up in many java/microservice positions, and I’m curious if this is at some point going to overtake java in my area.
The current benchmarks seem to suggest that if autoscaling is key to your services, golang is the way to, well, go.
I looked at the job market and it doesn’t yet seem to have taken over, but I’m curious how this is likely to play out over the next decade and if quakus for example is likely to become more competitive against golang. Interestingly, golang specific roles on average pay less than java ones in my area.
Let me know your thoughts or if you have any good articles / content on the subject.
In my humble opinion, being monocultural as a developer is a path to obsolescence. Be T-shaped: know your specialty really well, but also a bunch of stuff more superficially.
If you have a little hands on experience with Go on top of your Java expertise, you are imo more valuable to your employer. They may even be mid transition from Java to Go, where you would be very useful indeed.
Besides, it’s just healthy to keep learning new things.
I mean it’s a language specifically designed to be easy and quick to learn. Even if you don’t work with primarily, you’ll find it useful for stuff like cli programs, advanced scripts(instead of python), small services, etc.
Do you see downsides to learning it?
If you can, do it. It’s common enough to be [potentially] useful. If you don’t have a concrete need, then it’s not necessary, though.
There is not much to learn, so just do it? It’s not a relevant investment that would require much thought.
IMO it’s not as good a language as Rust, so I wouldn’t learn it for the purposes of making something. However it’s very easy to learn (at least to a productive level), so you may as well if you want to.
Just work through go by example and see what you think.
By far the best thing about Go is the tooling. Language itself is eh.
Yeah the language is not the most sexy but it does the job. The tooling is where the real benefits come to life
I think java has enough momentum that it will join in the perpetual pantheon of languages with FORTRAN and C - however with that said, learning Go changed how I write Java for the better, I was able to do this within my java job after convincing the team that a small but neccisarry but not critical side project could be done in Go to test it out - I had a blast learning and writing it, even though ultimately the dynamics of my company kept us in Java
Java will likely remain one of the common languages for the next 4 decades. Go is a better language which is why the pay rates are lower. But it is unlikely for Go to replace Java but it is actively competing against Rust to become the replacement for C.
What a confused post.
My impression has been that it’s not a good language. That relatively many people try it out, because the initial learning curve is small, only to fall out of love with it hard a few months later, because the low language complexity results in high complexity of each individual codebase.
Perhaps the most elaborate rant about that experience: https://fasterthanli.me/articles/i-want-off-mr-golangs-wild-rideAnd yeah, personally I care a lot about being able to work with good tooling, so that’s my reason to stay away from it as long as I don’t need it for employment.
But our industry famously loves terrible languages (see JavaScript, Python, PHP etc.), so if you are just interested in employability, I do imagine that you will continue to find jobs a few years from now. I certainly also feel like it’s well established in ops tooling and cloud services, so there’s gonna be people who continue to write new software with golang in those fields.
Are you only asking about the worthiness as a job skill or also for personal satisfaction?
Speaking primarily as a Go developer, what I see is companies cutting costs, and Java is battle-tested and there’s a tonne of talent out there who know the language. If Java in your area already pays more, I’d say you’ve already got your answer.
Besides which, if Go truly does eat the Java world in the next couple of years (it won’t), the language is still young enough for you to pick it up fairly quickly. Especially with the help of AI.
Not sure what distributed/micro service stack you have, but Go is used a lot for Kubernetes and Terraform utilities, so the client libraries are well supported and there is a lot of sample code. Our main application is in Java, but we have a Kubernetes operator for SaaS instances and a Terraform provider to install it, both written in GoLang.
All learning is good.
Your question is way to subjective. Ststat eyour intent. More people could help
I used to work in Java and now work in Go writing backend services. I think I enjoy writing Go more than I did Java most of the time.
Do you have any info on the architectural reasoning behind making the switch?
My reading suggests that in an area where autoscaling is key, Go is one of the best right now due to its performance from a cold starts.
I was hoping I’d get more answers of people discussing this type of requirement to be honest - the replies so far are having me second guess my research.
I switched companies. I started go when replacing php at a previous company. I wanted to do rust at the time, but my options from the CTO were go or newer php (we were 5.x IIRC). I chose go.
My current company decided on go before I started. There’s some python ml stuff and some other things in functional languages, but we’re primarily go. I don’t know why specifically it was chosen. The old codebase was a bit of go and the original legacy in Ruby. I’m definitely glad they decided to move away from Ruby slowly (and compleltely in the new codebase).
Im biased but Java is a better language and learning go is good to broaden your horizon but will you Need it? Probably not much, mostly when working with helm i assume…
Ofc Theres nothing wrong with learning it though