Oracle ha anunciado 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) incluye miles de mejoras en el rendimiento, la estabilidad y la seguridad, 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, que tendrá lugar del 17 al 20 de octubre en Las Vegas, y a través de una presentación que se emitirá en dev.java/ el martes 20 de septiembre a las 9:00 a. m. PT.
El último Java Development Kit (JDK) proporciona actualizaciones y responde a siete Propuestas de Mejora de JDK (JEPs en sus siglas en inglés). La mayoría de estas actualizaciones se entregarán como funciones adicionales de seguimiento en previsualización que afianzan funcionalidades introducidas en versiones anteriores.
JDK 19 incluye mejoras del lenguaje dentro del proyecto Amber de OpenJDK (patrones de registro y correspondencia de patrones para expresiones y declaraciones «switch»); mejoras en la biblioteca para la interoperabilidad con código ajeno a Java (API de memoria y funciones externas) y para aprovechar instrucciones vectoriales (API Vector) en el marco del proyecto Panama de OpenJDK, así como las primeras previsualizaciones del proyecto Loom (threads virtuales y concurrencia estructurada), que reducirán drásticamente el esfuerzo necesario para escribir y mantener aplicaciones concurrentes de alto rendimiento en Java.
Oracle entrega nuevas funciones de Java cada seis meses, siguiendo un calendario predecible de lanzamiento de versiones. 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 de todos los tamaños y sectores.
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 expresiones y declaraciones «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 con concisión y seguridad.
Herramientas de biblioteca
* JEP 424: 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 tiempo de ejecución de Java. Al llamar de forma eficaz a funciones externas (esto es, código ajeno a Java Virtual Machine o JVM) y acceder de forma segura a memoria externa (es decir, no gestionada por JVM), la 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 Vector (cuarta incubación): 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 soportadas.
Puertos
* JEP 422: Puerto Linux/RISC-V: la integración de este puerto al repositorio principal de JDK abre la vía a implementaciones más sencillas de Linux/RISC-V.
Funciones del proyecto 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): optimiza el manejo y la cancelación de errores, mejora la fiabilidad y la observabilidad, al simplificar la programación multi-hilo y tratar múltiples tareas que se ejecutan en diferentes threads como una única unidad de trabajo.
Impulsar la innovación de Java en la nube
Java 19 es el resultado de una amplia colaboración entre ingenieros de Oracle y otros miembros de la comunidad mundial de desarrolladores de Java a través del proyecto OpenJDK y del Java Community Process (JCP). A estas nuevas mejoras se suma la compatibilidad de Java 19 con Java Management Service, un servicio nativo de Oracle Cloud Infrastructure (OCI) que proporciona un único panel para ayudar a las organizaciones a gestionar los tiempos de ejecución y aplicaciones Java en entornos locales o en cualquier nube.
Soporte para clientes de Java
Oracle Java SE Subscription es una oferta de pago por consumo predecible que proporciona a los clientes el mejor soporte posible, derecho a utilizar GraalVM Enterprise, acceso a Java Management Service y flexibilidad para actualizar al ritmo de su negocio. Esto ayuda a las organizaciones de TI a desafiar la complejidad, limitar los costes y mitigar los riesgos de seguridad. Además, Java SE y GraalVM Enterprise se ofrecen de forma gratuita en OCI, lo que permite a los desarrolladores crear y desplegar aplicaciones que se ejecutan más rápido, mejor y con una relación coste-rendimiento inmejorable en Oracle Cloud.
Oracle se enorgullece en reconocer que el número de certificaciones Java ha alcanzado ya el millón. Esta cifra demuestra la popularidad de Java entre la comunidad de desarrolladores mundial. Las certificaciones Java ayudan a los desarrolladores a desmarcarse como expertos en Java y a mejorar su perfil de cara a aquellas empresas que buscan atraer profesionales Java altamente cualificados.