Java
Código

Java 22 empieza a tomar forma

La API de funciones y memoria externas, para la interoperabilidad con el código nativo, se finalizaría en la versión JDK 22 prevista para marzo de 2024.

java

Java Development Kit 22, que llegará en marzo de 2024 como la próxima versión prevista de Java Standard Edition ya tiene tres características previstas hasta el momento. Una séptima incubadora de una API vectorial y variables y patrones sin nombre se acaban de unir a una API de funciones y memoria externa como características previstas en JDK 22.

A 30 de octubre, la API vectorial se encontraba en la fase "propuesta como objetivo", mientras que las variables y patrones sin nombre y la API de función y memoria externas estaban en la fase de objetivo oficial. En jdk.java.net están disponibles versiones preliminares de JDK 22 para Linux, Windows y Mac. Las descripciones oficiales de las tres capacidades hasta ahora son las siguientes:

Una API vectorial (séptima incubadora) expresaría cálculos vectoriales que se compilarían de forma fiable en tiempo de ejecución con instrucciones vectoriales óptimas en las arquitecturas de CPU compatibles, consiguiendo un rendimiento superior al de los cálculos escalares equivalentes. La API ofrece una forma de escribir algoritmos vectoriales complejos en Java, utilizando el algoritmo de autovectorización HotSpot existente, pero con un modelo de usuario que hace que la vectorización sea más predecible y robusta.

Esta capacidad se ha incubado en versiones anteriores de Java que se remontan al JDK 16 de marzo de 2021. Los objetivos de la API incluyen que sea clara y concisa, independiente de la plataforma y que ofrezca una compilación en tiempo de ejecución y un rendimiento fiables en arquitecturas x64 AArch64, así como una degradación gradual. Esta capacidad pretende aprovechar las mejoras del Proyecto Valhalla en el modelo de objetos de Java, permitiendo a los programas trabajar con objetos de valor.

Las variables y patrones sin nombre pueden utilizarse cuando se requieren declaraciones de variables o patrones anidados pero nunca se utilizan. Los objetivos del plan incluyen:

  • Capturar la intención del desarrollador de que un determinado parámetro vinculante o lambda no se utilice, y hacer cumplir esa propiedad para clarificar los programas y reducir las oportunidades de error.
  • Mejorar el mantenimiento del código identificando las variables que deben declararse pero no se utilizan.
  • Permitir que aparezcan varios patrones en una misma etiqueta de caso, siempre que ninguno de ellos declare variables de patrón.
  • Mejorar la legibilidad de los patrones de registro elidiendo los patrones de tipo anidados innecesarios.

Esta propuesta se adelantó en JDK 21 y se finalizaría sin cambios en JDK 22.

La API de memoria y funciones externas permite a los programas Java interoperar con código y datos fuera del tiempo de ejecución de Java. Al invocar funciones externas y acceder de forma segura a memoria externa, los programas Java pueden llamar a bibliotecas nativas y procesar datos nativos sin la fragilidad de JNI (Java Native Interface), afirma la propuesta.

La API de funciones y memoria externas se presentó previamente en JDK 19, JDK 20 y JDK 21. Se finalizaría en JDK 22. Las últimas revisiones abarcan tres áreas: apoyar los charsets arbitrarios para cadenas nativas, permitir que los clientes creen descriptores de funciones en lenguaje C mediante programación y la introducción del atributo Enable-Native-Access JAR-file manifest. Este último permite que los archivos JAR ejecutables llamen a métodos restringidos sin tener que utilizar la opción de línea de comandos -enable-native-access.

Java 22, que saldrá el 19 de marzo de 2024, es una versión de características que recibirá seis meses de soporte de Oracle, a diferencia del JDK 21 que acaba de salir, que es una versión de soporte a largo plazo (LTS) que recibirá al menos ocho años de soporte. Además de Oracle, otras empresas podrían ofrecer un soporte más prolongado para JDK 22 si así lo desean. Las actualizaciones estándar de Java se producen cada seis meses, y las versiones LTS llegan cada dos años.

Otras funciones que probablemente aparezcan en JDK 22 son las que ya se han adelantado, como los string templates y las clases y métodos principales de instancia sin nombre. Otras funciones que podrían aparecer por primera vez en JDK 22 son los avances de una API de archivos de clase para analizar, transformar y generar archivos Java, y las constantes computadas, que son soportes de valores inmutables que se inicializan como máximo una vez. También es posible una propuesta de recopiladores de flujos Java para mejorar las operaciones con flujos.

Antes de su disponibilidad general, JDK 22 pasará por fases de rampdown en diciembre y enero, seguidas de dos versiones candidatas en febrero de 2024.



Forma parte de nuestra comunidad

 

¿Te interesan nuestras conferencias?

 

 
Cobertura de nuestros encuentros
 
 
 
 
Lee aquí nuestra revista de canal

DealerWorld Digital