Hacker News new | ask | show | jobs
by boxmein 958 days ago
Go is an extremely productive language in our experience (large majority of the back-end is in Go).

Go excels in tooling and code sharing, and onboarding developers with Go is efficient.

It also has an extremely small runtime footprint, reducing ecological footprint and server costs :) An average JVM needs 500+ MB of RAM, whereas our average Go microservice hovers around 25 MB.

Last but not least, it is not tied to the existing C ecosystem, which is a HUGE value add in containerized environments where in the majority case you can make a Docker image that is based on `scratch`.

Of course there are some quirks (lack of try syntax for example), but Go programs are also simpler to comprehend due to intentional exclusion of AOP, try-catch, etc.

Lastly, the interface system is probably the most straight forward and simple for general programming :)

3 comments

> Last but not least, it is not tied to the existing C ecosystem, which is a HUGE value

They also provide their own crypto within the standardlib. No openssl needed.

>An average JVM needs 500+ MB of RAM

We are running small services with heap size under 100 MBs and is absolutely possible with new JVM versions. If you want ever smaller without JIT, native image is also an option. Moreover in most scenarios, JVM provide better peak performance. So here is a tradeoff

You can actually fine tune to run the jvm at the same memory footprint as go. It’s just not easy to do so. Especially since it lacks structure/value types.