Java VS Go

github logo ・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.

twitter logo DISCUSS (13)
markdown guide

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.


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.


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:


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.


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.


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?


I'm no full-time developer but many languages often holding programmers back when the development speed slow down, dip in motivation and steep learning curve can be a daunting experience for the team to cope.

If the projects allow you to evaluate other language, my opinion would be writing in Go then port to V language. I know V still in alpha stage but the creator, Alex, targets to release 1.0 next year, open source around 20 June 2019 for early adopters to contribute and take the risk.

Unlike most other shiny languages, the difference is the creator build upon the development experience in building apps with simple programming jargons we can understood.

What I understand the claims for:
1) Rapid development pace is incredible
2) Low memory overhead and no runtime since it's compile to C.
3) No garbage collection.
4) Simple syntax than Rust and Go, it took me a week to relearn, coming from OO world.
5) Performance, V interop with C is easier than Ruby, Java, Nodejs, Python and etc.
6) KISS and reuse the code across the OS platforms.
7) Allow V to take advantage of C optimization.
8) Possibility to develop AAA gaming engine.

"Despite being simple, it gives a lot of power to the developer. Anything you can do in other languages, you can do in V."

Classic DEV Post from Jan 10

The IDE - The beginner's trap !

Vicent profile image
Software developer is where software developers stay in the loop and avoid career stagnation.

Sign up (for free)