Oracle anunció la disponibilidad de Java 19, la última versión del lenguaje de programación y la plataforma de desarrollo número uno del mundo. Java 19 (Oracle JDK 19) ofrece miles de mejoras en el rendimiento, la estabilidad y la seguridad, incluidas las que ayudarán a los desarrolladores a mejorar su productividad e impulsar la innovación en todos los ámbitos empresariales. Oracle dará a conocer las últimas funcionalidades de Java 19 en JavaOne 2022, del 17 al 20 de octubre en Las Vegas, y a través una presentación que se emitirá en dev.java/ el martes 20 de septiembre a las 9:00 a. m. PT.
«Nuestra colaboración continua con la comunidad de desarrolladores es el pilar de Java. Como organización administradora de Java, Oracle se compromete firmemente a proporcionar a los desarrolladores y empresas las últimas herramientas para ayudarles a crear aplicaciones y servicios innovadores», señala Georges Saab, vicepresidente sénior de desarrollo de la plataforma Java y presidente del Consejo de Administración de OpenJDK de Oracle. » Las nuevas y potentes mejoras de Java 19 son el testimonio del monumental trabajo realizado por la comunidad global de Java «.
La última versión de Java Development Kit (JDK) proporciona actualizaciones y responde a siete propuestas de mejora (JEPs). La mayoría de estas actualizaciones se entregarán como funciones adicionales de visualización que afianzan funcionalidades introducidas en versiones anteriores.
DK 19 incluye mejoras del lenguaje dentro del proyecto Amber de OpenJDK (Record Patterns e Pattern Matching for Switch); mejoras en la biblioteca para la interoperabilidad con código no Java (Foreign Function e Memory API) y para aprovechar instrucciones vectoriales (Vector API) del proyecto OpenJDK Panamá, así como las primeras visualizaciones del Project Loom (Virtual Threads e Structured Concurrency), que reducirán drásticamente el esfuerzo necesario para escribir y mantener aplicaciones concurrentes de alto rendimiento en Java.
Oracle entrega nuevas de funciones de Java cada seis meses mediante un calendario de lanzamientos predecible. Esta cadencia proporciona un flujo constante de innovaciones, al tiempo que brinda mejoras continuas en el rendimiento, la estabilidad y la seguridad de la plataforma, lo que ayuda a aumentar la presencia de Java en organizaciones y sectores de todos los tamaños.
Las actualizaciones más importantes incluidas en Java 19 son las siguientes:
Actualizaciones y mejoras del lenguaje
- JEP 405: Patrones de registro (vista previa): permite a los usuarios anidar patrones de registro y de tipo para impulsar una forma potente, declarativa y modulable de navegación y procesamiento de datos. Esto amplía las posibilidades de la coincidencia de patrones, con el fin de permitir consultas de datos más sofisticadas y modulables.
- JEP 427: Coincidencia de patrones para «switch» (tercera vista previa): permite la coincidencia de patrones para expresiones y declaraciones de cambio («switch») al facilitar que estas se prueben con varios patrones. De este modo, los usuarios pueden expresar consultas de datos complejas de forma concisa y segura.
Herramientas de biblioteca
- JEP 419: API de memoria y funciones externas (vista previa): permite a los programas Java interoperar más fácilmente con código y datos externos fuera del ambiente de ejecución de Java. Al llamar de forma eficaz a funciones externas (es decir, código ajeno a Java Virtual Machine, o JVM) y acceder de forma segura a la memoria externa (es decir, no gestionada por JVM), esta API permite a los programas Java llamar a bibliotecas nativas y procesar datos nativos mediante un modelo de desarrollo basado únicamente en Java. Esto se traduce en una mayor facilidad de uso y un incremento del rendimiento, la flexibilidad y la seguridad.
- JEP 426: API vectorial (cuarta incubadora): permite un rendimiento superior al de cálculos escalares equivalentes al expresar cálculos vectoriales que compilan de forma fiable, en tiempo de ejecución, instrucciones vectoriales en arquitecturas de CPU compatibles.
Puertos
- JEP 422: Puerto Linux/RISC-V: simplifica las implementaciones de Linux/RISC-V al integrar este puerto en el repositorio principal de JDK.
Funciones del Project Loom en vista previa/incubación
- JEP 425: Threads virtuales (vista previa): reduce drásticamente el esfuerzo de escritura, mantenimiento y observación de aplicaciones concurrentes de alto rendimiento mediante la introducción de threads virtuales ligeros en la plataforma Java. El uso de threads virtuales permite a los desarrolladores solucionar problemas, depurar y perfilar fácilmente aplicaciones concurrentes con las herramientas y técnicas de JDK existentes.
- JEP 428: Concurrencia estructurada (incubación): simplifica el procesamiento de errores y cancelaciones, mejora la fiabilidad y la observabilidad al simplificar la programación multihilo y tratar múltiples tareas que se ejecutan en diferentes threads como una única unidad de trabajo.