La verdad es esta: Java tiene cosas donde supera a Go, y lo digo de forma objetiva. Si bien en sintaxis Go es claramente más simple, no nos podemos quedar ahí. Te pongo un ejemplo concreto.
El tiempo medio que le toma a una app web hecha en Java para levantar y estar lista para recibir requests es de 2.6-3 segundos (cambia según la versión), mientras que una web hecha en Go solo necesita 180 ms.
Gana Go, y por mucho. Pero hay matices. Por ejemplo, si esa misma app Java la trasladamos a GraalVM, veremos que solo necesitaría en promedio unos 90 ms para estar lista.
La mitad del tiempo que necesita Go. Ese matiz lo cambió todo. Ahora veamos otro caso.
Serverless, ¿cuál usarías? Seguramente me dirás que Go, pero ahora que sabes lo de GraalVM, ¿por qué no sería una opción usar Java? Es más, no es lo único que existe: también está SnapStart en AWS, que hace justo eso, o Project Leyden, que reduce el tiempo de startup hasta en un 94%. Esto lo cubrí ya en un video que puedes ver aquí.
Te expuse solo dos puntos, pero hay más.
Puedo mostrarte varios benchmarks de terceros y comparar diferentes frentes donde Java gana o compite bastante bien con Go.
¿Cuáles son esos frentes? Operaciones I/O, concurrencia extrema, uso de memoria, CPU y sintaxis.
Eso lo hice en el video que publiqué esta semana, donde te muestro todo lo que te dije y más.
Por cierto, por si te has estado perdiendo muchas cosas, este video es parte de una serie llamada "Java Performance 2026". Te dejo el link donde puedes ver todo lo que he estado subiendo ahí.