Java está experimentando un período de renacimiento después de que pareció perder la etapa nativa de la nube a favor de plataformas más jóvenes. El ecosistema de Java parece ser un camino rápido hacia la innovación, con muchos proyectos en curso que apuntan a hacerlo más amigable con la nube, brindar soporte a nivel de lenguaje y mejorar su tiempo de ejecución. Mark Little, vicepresidente de ingeniería de RedHat, se centró en estos esfuerzos en su charla sobre Devoxx UK.
Java todavía está en el podio después de todos estos años tanto en Tiobe Index como en términos de lenguajes de programación utilizados en GitHub, pero más que eso, sigue siendo el lenguaje de facto para software empresarial. Su cadencia de lanzamiento más rápida demostró que puede incorporar cambios fácilmente y permitir que los desarrolladores sean más productivos. Con el respaldo de potentes empresas de software (como Amazon, Google, IBM, Microsoft, Netflix, Oracle, Pivotal, Red Hat, etc.) o fundaciones de código abierto (como Eclipse Foundation o Apache Software Foundation), actualmente la innovación en el ecosistema JVM se centra en tres áreas principales:
Tecnología JVM preparada para la nube nativa
Aunque en el espacio serverless, Java ocupa apenas un 6,1% (la medalla de oro se la lleva node.js con un 62,9%) en el espacio nativo de Kubernetes; las aplicaciones como Quarkus prometen tiempos de inicio de 400 milisegundos además de memoria reducida y huella de disco. Dependiendo de la intención, puede optar por ejecutar en el punto de acceso de OpenJDK o en GraalVM. Este último ha sido un catalizador de una gran innovación en este espacio, no solo para Java sino también para otros lenguajes de programación soportados por él. Project Leyden promete traer una definición estándar para Java nativo junto con una implementación de referencia de un generador de imágenes nativo y un conjunto de pruebas de conformidad para Java nativo.
Mark Little: Al mirar el futuro de Java, me preocupa que el Proyecto Leyden no llegue en el momento adecuado para seguir siendo relevante.
Kruize Autotune: promete ajustar automáticamente la configuración de Kubernetes para Java. Más que solo JVM, optimiza toda la pila.
Compatibilidad con el ecosistema de Java
Adoptium, el repositorio de imágenes “benditas”, tuvo alrededor de 300 millones de descargas. Mientras se esfuerza por convertirse en un hogar para descargar archivos binarios para todas las plataformas disponibles, por ahora cubre Linux, Windows, macOS, ARM, Intel, AIX y otros. Con el fin de garantizar que cualquier compilación de la comunidad alcance un nivel de calidad lo suficientemente alto, bajo el paraguas de Adoptium AQAvit, se ejecutan 250.000 pruebas automatizadas en más de 100 máquinas de compilación y prueba en la nube. Las pruebas se centran en la seguridad (pasar las pruebas de vulnerabilidad de seguridad conocidas), la corrección funcional y el rendimiento, así como la escalabilidad y la durabilidad.
Holly Cummins: Aunque hubo un período en el que tuve una “aventura con Node.js”, actualmente estoy de vuelta escribiendo código en Java, ya que se desarrolló mucho y muchas de las partes buenas de trabajar con JS ahora están presentes en Java como bien.
Tiempos de ejecución más eficientes
Como no todo se ejecuta en Kubernetes, hay esfuerzos para mejorar Java en general: uso de memoria más pequeño (por ejemplo, cadenas compactas), gestión de memoria y recolección de elementos no utilizados más eficientes (Shenandoah, G1), vinculación y dimensionamiento adecuado de aplicaciones (jlink) y optimización de IO (HTTP2, WebSockets).
Aunque Java es un veterano de los lenguajes de programación, su comunidad está trabajando en una multitud de iniciativas para intentar adaptarlo a cualquier entorno. Los cinco años desde que se lanzó una nueva versión de Java cada seis meses demostraron que Oracle puede transformar el lenguaje a un ritmo más rápido e incluso actores como Microsoft se están involucrando, aunque tradicionalmente no estaban involucrados. La principal preocupación para su futuro nativo en la nube es si Leyden y otras iniciativas estarían listas en un período de tiempo adecuado para seguir siendo relevantes.