Go's biggest flaw for backends is the error handling. No exceptions and nothing checking that you use the err.
Java's issue might be the lack of cooperative multitasking until recently (virtual threads). Best you could do was those promises frameworks that mangle your code, and Google in particular uses something a hundred times worse called Guice (which is also DI).