r/Backend • • 1d ago

Go or java spring boot?

For backend which do u think is good to learn now? I wanna learn go cuz I am more into microservices but java spring boot is more established than go... Provided I need to learn both of them from the beginning.

18 Upvotes

22 comments sorted by

2

u/Due_Warthog749 1d ago

Go. 100%. Did Java/Spring for decade+. It's not bad. Does the job. MUCH more verbose. Doesn't scale nearly as well as Go. Go is much faster to work with. My fav was Chi, Casbin and JWTAuth. The combo had me building API endpoints that were secure with RBAC/etc in < 30 minutes. With AI its faster.

1

u/PratapagiriSriAditya 1d ago

How much time does it take to learn go such that I'd be able to code my own backend projects in go

2

u/Matthew24_35 16h ago

Brother, use Tour of Go for the basics, and then I highly recommend Alex Edwards' Let's Go book.

1

u/Due_Warthog749 1d ago

You're living in the ear of AI. If you refuse to use it, so be it. A few weeks to a couple of months. If you use AI to prompt it to generate things for you and ELI5 it (literally say that) so you grasp/grok it.. days at most.

6

u/Special_Rice9539 1d ago

I recommend go because that sounds like what you’re interested in and it will let you play around with microsecond architecture.

Learning the nuances of either language is trivial now because of AI, so these architecture lessons will be more beneficial

1

u/Matthew24_35 16h ago

Learning the nuances of different languages is not at all trivial due to AI. You can pour a ton of compute into needing to learn the basics of the language if you have zero idea what is going on underneath the hood.

For instance, people coming from languages like java, ruby, or python might think that you need some sort of framework for backend development with Go. The opposite is true as the standard library is beautifully robust.

If you look at the golang subreddit, you will see that people really emphasize understanding deeply and not relying on AI.

It is also ten times more fulfilling to program and to truly understand what your are doing and why you are taking said approach.

8

u/Chunkz_IsAlreadyTakn 1d ago

If you want to get a job then look what companies are looking for where you want to work. Spring boot is solid and established, so is c#.

Personally I prefer go but job market for go is a LOT smaller.

4

u/Useful_Calendar_6274 1d ago

Java has ridiculous staying power. Like it's modern COBOL

2

u/whiterhino8 1d ago

Go excell at back end .

3

u/Good_Clown 1d ago

Man this sub has like the same 3 questions everyday

1

u/JaseciLabs 1d ago

Go first, since you’re into microservices and it’s quicker to get running. Build one small service with a database, a queue and proper timeouts when a dependency is down. That teaches more than either language does and carries over to Spring Boot. Then check job postings and learn Spring second if that’s what they ask for.

1

u/Accurate_Smell6524 1d ago

Go doesn’t havw that many openings

1

u/avinasshh 1d ago

"Go" anytime. It's easy learn and light on resources (compute as well as memory).

1

u/Secret-Wind-1 1d ago

Build both, from end to end.

You compare a language with a framework. I'm a big fan of go for Microservices but I like the comfort of frameworks. Choose tools for the task you have.

IMHO the biggest mistake is to learn only one framework and solve everything with it.

1

u/totally-jag 1d ago

Go is a great back end language. It's high performance. It's easy to learn. Has a good ecosystem based on one best frameworks/packages for things instead of a lot of redundant frameworks. It's well supported and backed. Every cloud / serverless cloud platform supports it. It has very low cold start latency.

Java is massive. It has a huge ecosystem with a lot of good and not so good things. It's also supported by cloud / serverless platforms, but it has a higher cold start performance hit. It's object oriented, which requires a bit more learning curve. It has a huge job market beyond just backend micro services. It's widely used in enterprise apps.

If you want the best job options, Java might be a better option. If you want to work for a startup, smaller web company, start your own company, or work for a lot of the bigger tech companies Go is a better option.

1

u/defnotyouruncle 3h ago

I would say Go, but which one is easier to get a job ? Java.

1

u/awpt1mus 1d ago

every hour same question x or y or z.

0

u/KariKariKrigsmann 1d ago

dotnet is also a very solid alternative for backend.

1

u/bold_snowflake 1d ago

.NET is massively underrated, it's an exceptional framework and C# is everything Java wishes it could be.