Java 26 pretende mejorar la productividad de los desarrolladores y apunta hacia la IA

Oracle ha publicado JDK 26, que dependiendo del prisma por el que se mire puede ser entendido como OpenJDK 26 o Java 26. Una vez más, recordamos que OpenJDK es la base de la implementación comercial de Java desde la versión 7, así que las dos grandes vertientes de la tecnología están sincronizadas desde hace muchos años.
Lo primero que se puede destacar de Java 26 es el hecho de que se ha mejorado la capacidad de proceso del recolector de basura G1 mediante la reducción de la sincronización entre la aplicación y los procesos del propio recolector de basura (JEP 522). Esta mejora, según explica Oracle, abre la puerta a una ejecución más rápida y a soportar más usuarios sin tener que invertir en hardware adicional, ya que Java debería funcionar de manera más eficiente y ofreciendo una experiencia de usuario más suave.
Otro aspecto interesante es el almacenamiento en caché de los objetos de manera anticipada (Ahead-of-Time) con cualquier recolector de basura (JEP 516), cosa que debería repercutir en la productividad de los desarrolladores y en una mayor eficiencia en las gestión de los recursos mediante la reducción de los tiempos de inicio de las aplicaciones Java con cualquier recolector de basura. Oracle explica aquí que esto “permite la carga secuencial de objetos Java preinicializados en caché en la memoria desde un formato neutral e independiente de GC. También mejora la caché anticipada, lo que permite que la máquina virtual Java HotSpot mejore el tiempo de inicio y calentamiento y se pueda utilizar con cualquier GC, incluido el ZGC de baja latencia”.
A través de la Propuesta de Mejora del JDK 500 se intenta que ayudar a los desarrolladores para que mejoren “la seguridad y confiabilidad de las aplicaciones al evitar modificaciones no deseadas, alteraciones o errores accidentales en sistemas comerciales críticos. Emite advertencias sobre los usos de la reflexión profunda para mutar campos finales y permite a los desarrolladores mutar campos finales cuando sea esencial para evitar tanto las advertencias actuales como las restricciones futuras. Este cambio crucial refuerza el principio de ‘integridad por defecto’ de Java, que se centra en proteger los datos confidenciales y la lógica empresarial, reducir los riesgos ocultos y disminuir la posibilidad de que se produzcan errores o vulnerabilidades de seguridad”.
Java 26 ha incluido en fase estable el protocolo HTTP/3 en la API de cliente de HTTP (JEP 517), lo que debería repercutir, según Oracle, en un posible incremento de la productividad de los desarrolladores “al facilitar la escritura de código que interactúa con los servidores HTTP”, permitiendo “que las bibliotecas y aplicaciones interactúen con servidores HTTP/3 con un cambio mínimo de código”.
En el lanzamiento que nos ocupa se ha eliminado, por fin, la API para las malfamadas applet de Java (JEP 504). Esta tecnología fue marcada como obsoleta en el lanzamiento de JDK 17 y ahora su retiro se hace efectivo. Para el desarrollo de la tecnología parece aplicarse al extremo lo de “las cosas de palacio van despacio”, y es que, aparte de unos procesos de eliminación que pueden tardar años, las nuevas características que se pretenden introducir tienen que pasar por un auténtico viacrucis hasta su consolidación.
La API de vectores vuelve a ser mencionada en Java 26, encontrándose ahora en su undécima fase de incubación (JEP 529). Aquí nos limitaremos a recoger lo explicado por Oracle a través del blog oficial: “Ayuda a los desarrolladores a mejorar el rendimiento y la rentabilidad de sus aplicaciones Java permitiéndoles ofrecer más información y valor con menos hardware.”
“La API de vectores expresa cálculos vectoriales que se compilan de manera confiable en tiempo de ejecución con instrucciones vectoriales óptimas en arquitecturas de CPU compatibles, lo que resulta en un procesamiento más rápido para análisis de datos, inferencia de IA y cargas de trabajo de computación científica. Esto brinda a los desarrolladores la capacidad de lograr un rendimiento superior a los cálculos escalares equivalentes que se utilizan a menudo en escenarios de computación e inferencia de IA”. Sí, ahora también se menciona a la inteligencia artificial, esa cosa que está tan de moda que apunta a ser la mayor burbuja económica jamás vista en la historia de la computación.
Como última cosa destacable está la presencia en segunda fase previa de las constantes diferidas (JEP 526), que “ayuda a los desarrolladores a aumentar la productividad y la eficiencia de los recursos al ofrecer una mayor flexibilidad en el momento de su inicialización, lo cual es particularmente valioso para la IA y las aplicaciones basadas en datos. A través de una nueva API para constantes diferidas, que son objetos que contienen datos no modificables, la JVM trata las constantes diferidas como constantes verdaderas para permitir el mismo rendimiento que declarar un campo final”.
Y hasta aquí lo más interesante de Java 26. Lo que quieran conocer todos los detalles pueden consultarlos a través de la web de OpenJDK y la entrada publicada en el blog oficial de Java. La versión software libre del JDK puede ser obtenida desde el sitio web de Java (alternativamente y extraoficialmente desde Adoptium) y la comercial desde la web de Oracle.
La entrada Java 26 pretende mejorar la productividad de los desarrolladores y apunta hacia la IA es original de MuyLinux
