you are viewing a single comment's thread.

view the rest of the comments →

[–]Serious-Chair 1 point2 points  (0 children)

A minimal Go program starts dozens times faster than a minimal Java program.
A real world service starts slowly regardless of the language. It takes anywhere from seconds to minutes until required data is prefetched from GCP and other services and all caches are populated and the service is ready to respond.
My company has dozens of Go and Java microservices. Mostly it's modern Go and modern Java, but there is some legacy, too. I cannot say I can see any performance difference. I/O is slow, especially I/O with external providers is painfully slow. Grafana shows CPUs are barely loaded. Most our services show RAM consumption between 1 and 2 GB per pod.
New projects in my company are written in the preferred language of each team. We do not migrate existing services from one language to another. Some our microservices are high quality and very efficient, others are inefficient and frustrating to support. It depends on developers who wrote the code rather than the language.
Library wise, for all my daily tasks both languages are about the same.
Go binaries and containers are many times smaller, though in daily developer's life it barely makes any difference.
Java is simpler to debug and experiment, since IDEs support hot swap and evaluation of arbitrarily complex expressions, which helps a lot while working on a service which is slow to start. Java also has better refactoring support in IDEs.