Java 20 avanza en la mejora del proceso de programación
Oracle ha publicado JDK 20, que dependiendo del prisma por el que se mire puede ser entendido como OpenJDK 20 o Java 20. 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 conectadas desde hace muchos años.
Una vez más, JDK 20 no es un lanzamiento, condición que sí tenga la versión 21, cuyo lanzamiento está programado para septiembre de 2023 si a Oracle no se le tuercen los planes. Desde que la cadencia de lanzamientos fue cambiada a cada seis meses, las nuevas versiones de Java no suelen incluir una gran cantidad de novedades, pero sí ha servido para que el desarrollo y la evolución de la tecnologías sean más constantes. Sin más dilación, procedemos a exponer los aspectos más destacados de la última versión del JDK.
Los primero que sobresale de Java 20 son los patrones de registro, los cuales están en segunda fase previa y según Oracle mejoran la productividad del desarrollador mediante la extensión de la coincidencia de patrones para expresar consultas de datos más sofisticadas. Los patrones de registro y los patrones de tipos pueden ser anidados para abrir la puerta a una forma de navegación y un procesamiento de los datos declarativa y componible. Relacionado con esto y en cuarta fase previa está la coincidencia de patrones para las sentencias y expresiones switch
.
La segunda novedad destacada es la API de función foránea y de memoria, que ahora se encuentra en segunda fase previa y reemplaza la Interfaz Nativa de Java (JNI) con un modelo de desarrollo en Java puro y con un rendimiento igual o superior a JNI y sun.misc.Unsafe
. Ofrece diversas vías para operar con diferentes tipos de memoria externa (memoria nativa, memoria persistente, etc); acomodar otras plataformas como por ejemplo x86 de 32-bit; usar funciones foráneas escritas en lenguajes como C, C++ o Fortran; además de permitir a los programas llevar a cabo operaciones insegura sobre la memoria foránea, pero avisando a los usuarios sobre dichas operaciones por defecto.
En quinta fase de incubación está la API de vectores, de la que ya expusimos en anteriores ocasiones. En JDK 20 ha mejorado su rendimiento hasta lograr superar a los cálculos escalares equivalentes, cosa que se ha logrado mediante la introducción de una API para expresar cálculos vectoriales que se compilan en tiempo de ejecución en instrucciones vectoriales que son óptimas para las arquitecturas de CPU soportadas.
En segunda fase previa han llegado los hilos virtuales, los cuales son hilos más livianos que reducen el esfuerzo de escribir, mantener y observar aplicaciones concurrentes de alto rendimiento. La característica procede de Project Loom y tiene como objetivo actualizar el modelo de concurrencia de Java con el fin de ajustarlo a las necesidades actuales de las aplicaciones de servidor a gran escala. Hasta ahora las vías empleadas para implementar los hilos de Java tenían como coste un desperdicio del hardware por infrautilización o la necesidad de esfuerzo adicional por parte del programador debido al uso de peores modelos de programación.
En fase de incubación ha llegado a JDK 20 los valores de alcance, que permiten compartir datos inmutables dentro y entre hilos. Es preferible utilizar los valores de alcance antes que las variables de un hilo en local, sobre todo cuando se emplea una gran cantidad de hilos virtuales. Además, proporcionan facilidad de uso, comprensibilidad, robustez y rendimiento.
Y como última novedad destacada, en segunda fase de incubación está la concurrencia estructurada, que simplifica la programación multhilo mediante la introducción de una API para la concurrencia estructurada.
Todos los detalles sobre Java 20 pueden ser consultados a través de las notas de lanzamiento disponibles en la web de OpenJDK y en 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. Recomendamos recurrir a OpenJDK en caso de tener dudas sobre las restricciones de la versión comercial, ya que Oracle asustó a muchos al cambiar la licencia en 2018, a pesar de ser un movimiento con un impacto real reducido.
La entrada Java 20 avanza en la mejora del proceso de programación es original de MuyLinux