Java 20: todas las novedadesMarzo 26, 2023 | |
Oracle ha lanzado Java 20, una nueva versión de uno de los lenguajes de programación más utilizados en el mundo. No todas las funciones integradas en esta versión han completado la etapa de desarrollo. En algunos casos son de hecho vistas previas, en otros son características en incubación. | |
Coincidencia de patrones y patrones de registro | |
En cuanto a las novedades dedicadas a la codificación, destacamos en primer lugar el soporte para la coincidencia de patrones en switches. Gracias a él, se deberían mejorar los niveles de productividad al permitir probar una expresión frente a una serie de patrones, cada uno con una acción específica. Esto es para que incluso las consultas complejas orientadas a datos se puedan expresar de forma concisa y segura. | |
Aún con respecto a la productividad, es útil señalar la introducción del soporte Record Pattern. Esto se hace extendiendo la coincidencia de patrones para expresar consultas de datos más sofisticadas. Luego, Java se mejoró con patrones de registro para desestructurar registros. Tanto los patrones de registro como los patrones de tipos se pueden anidar para permitir el acceso a formas de navegación y procesamiento de datos más poderosas y declarativas. | |
Nueva API y gestión de hilos | |
También cabe destacar la vista previa de Foreign Function & Memory API, particularmente útil cuando tiene que desarrollar una aplicación destinada a interactuar con códigos e información externa al tiempo de ejecución de Java. La API Vector, que aún se encuentra en etapa de incubación, también podría resultar particularmente útil. De hecho, los cálculos escalares tienen limitaciones en términos de rendimiento, mientras que los cálculos vectoriales deberían garantizar una mayor confiabilidad durante la compilación cuando se realizan en CPU compatibles. | |
También se está incubando la Concurrencia estructurada, gracias a la cual las tareas ejecutadas en diferentes hilos deberían ejecutarse como una sola unidad, simplificando mucho la programación multihilo. Lo mismo ocurre con los subprocesos virtuales, en versión preliminar, que deberían requerir menos recursos, lo que facilita la creación, el mantenimiento y la supervisión de aplicaciones simultáneas de alto rendimiento. | |
Por último, merecen una mención los Scoped Values, en incubación, con los que posibilitar el intercambio de datos de información inmutable tanto en hilos como entre hilos. Esta configuración debería funcionar mejor que la basada en subprocesos locales, especialmente en presencia de una gran cantidad de subprocesos virtuales. |