Java VS Go

llinaresvicent profile image Vicent 惻1 min read

At my current job we are going to make a big project that will have a lot of requests from all the country. We don't know if Go is better than Java with Spring for this case. Don't think about knowledge of programmers or experience with that techologies, just think on performance and development speed.


markdown guide

For performance Golang 1.5 is a beast. Yes, earlier version where slow(er) of ron par w/ Java. But 1.5 is just blisteringly fast.

The Golang maintainers put for a conscience effort to keep performance high. That means every new release will have perf. enhancements. I can not speak to Oracles drive for performance within Java.

Opinion: If I have to choice between golang and java/spring; Golang would win out. Especially for HTTP/S API's.


For the reader who reading on benchmarksgame list, it's more accurate to benchmark on your own machine, don't take the results on the site because it's not exactly what you assume it is.


I would see what the current knowledge of both languages is among your colleagues. Not just if they know Java and or Go. I would like to know how proficient they are.
As a consultant I often come to workplaces where I need to help and maintain a piece of code. They used a different language because the previous codes thought it would fit better (but you should read that as: we thought it would be fun to try out). You get code that is written without knowing all the language concepts and frameworks. It's bad and maintenance becomes hell.
Don't just go for a different language because it looks cool or it is shiny. If you still would like to try it: send all the developers to a course of a few days to make sure everybody on par.


You might consider the the C# ASP.NET Core 2.x backend. It's proven very performant. The article stacks it up against other options like Java and Go: ageofascent.com/2019/02/04/asp-net...


Almost reported your comment for abuse.


Ah, yes, abuse for saying I'm not interested on a technology when I want discussion about another two distinct technologies. Ok

Wow, you took that joke a little seriously. You must be a Microsoft programmer. Also, I was talking to Joe.

You replied to my comment šŸ˜’

Not what the indentation tells me


Microsoft? Nah, thank you xD


IMO; Java + Spring is more performant, but Go is much much easier and enjoyable to write, easier to deploy to multiple platforms and faster for new developers to get involved in the project. And well that's my two cents.


Are you sure Java + Spring is more performant than Go and his concurrency?


You might have to use both before concluding . I have used both extensively when it comes to performance , resource utilization golang is way performant .


If it's a big project you do have to think about programmers knowledge and experience, it could get ugly really fast if not knowing what you're doing.

That aside, and not knowing anything about Go, my advice would be to use Reactive Java (Spring WebFlux project). Would help increase your application's throughput.