Oracle libera Java 17

Austin, Texas, 14 de septiembre de 2021. Oracle anunció la disponibilidad de Java 17, la última versión del lenguaje de programación y plataforma de desarrollo número uno del mundo. Java 17 ofrece miles de actualizaciones de rendimiento, estabilidad y seguridad, así como 14 JEPs (JDK Enhancement Proposals) que mejoran aún más el lenguaje y la plataforma Java para ayudar a los desarrolladores a ser más productivos.
Java 17 es la última versión de soporte a largo plazo (LTS) bajo la cadencia de lanzamiento de seis meses de Java y es el resultado de una amplia colaboración entre los ingenieros de Oracle y otros miembros de la comunidad mundial de desarrolladores de Java a través de la Comunidad OpenJDK y el Proceso de la Comunidad Java (JCP). Desde que se lanzó el anterior JDK 11 LTS hace tres años, se han implementado más de 70 JEP.

Ofreciendo una licencia más simple

Oracle JDK 17 y las versiones futuras de JDK se proporcionan bajo una licencia de uso gratuito hasta un año completo después de la próxima versión LTS. Oracle también continuará proporcionando versiones de Oracle OpenJDK bajo la Licencia Pública General (GPL) de código abierto, como lo ha hecho desde 2017.

Mejora del soporte a largo plazo para los clientes

Oracle está colaborando con la comunidad de desarrolladores de Java y el JCP para mejorar la programación de LTS para brindar a las organizaciones más flexibilidad sobre cuándo, o si desean, migrar a una versión más reciente de Java LTS. Oracle propone que la próxima versión de LTS sea Java 21 y esté disponible en septiembre de 2023, lo que cambiará la cadencia actual de la versión de LTS de tres a dos años.

Con el respaldo de Oracle LTS y Java SE Subscription, los clientes pueden migrar a Java 17 al ritmo que mejor se adapte a sus necesidades. Oracle proporcionará a los clientes actualizaciones de seguridad, rendimiento y corrección de errores para Java 17 hasta al menos septiembre de 2029.

«Durante los últimos tres años, hemos escuchado cuánto a los desarrolladores les encantan las funciones más recientes, y hemos visto que el ecosistema realmente adopta la cadencia de lanzamiento de seis meses», dijo Georges Saab, vicepresidente de desarrollo, Java Platform Group, Oracle. “Uno de los mayores desafíos que enfrentan los desarrolladores de Java en la actualidad es que su organización solo les permite usar la última versión de LTS. Al trasladar las versiones de LTS a cada dos años, los desarrolladores que trabajan con organizaciones conservadoras ahora tienen más opciones y acceso a las funciones que les encantan y quieren usar «.

«Oracle está realizando cambios que beneficiarán significativamente a la comunidad de Java al cambiar las versiones de soporte a largo plazo a una cadencia de dos años e introducir una licencia nueva y más relajada que proporciona el uso de producción gratuito de Oracle JDK durante un tiempo prolongado», dijo el Dr. Arnal Dayaratna, vicepresidente de investigación, desarrollo de software de IDC. “Estos cambios brindarán a las organizaciones una mayor flexibilidad para administrar la complejidad del desarrollo y las implementaciones de aplicaciones modernas en la nube, en las instalaciones y en entornos híbridos”.

Acelerando la adopción de Java en la nube

Java es una de las plataformas de desarrollo más exitosas de la historia y se basa en la innovación continua que aborda las necesidades cambiantes de los desarrolladores. Para acelerar la adopción de Java en la nube, Oracle presentó recientemente Oracle Java Management Service, un nuevo servicio nativo de Oracle Cloud Infrastructure (OCI) para ayudar a las organizaciones a administrar los tiempos de ejecución y las aplicaciones de Java en las instalaciones o en cualquier nube.

Java Management Service brinda a los clientes visibilidad de sus implementaciones de Java en toda la empresa. Esto abarca todas las versiones de Java instaladas en su entorno, incluidas las versiones de Java que se ejecutan en desarrollo y producción. También destaca las aplicaciones Java no planificadas que se estén ejecutando y comprueba si todas las versiones de Java instaladas están actualizadas con los últimos parches de seguridad.

JDK 17 incluye nuevas mejoras de idioma, actualizaciones de las bibliotecas, compatibilidad con nuevas computadoras Apple, eliminación y desaprobación de funciones heredadas, y trabajo para garantizar que el código Java escrito hoy continúe funcionando sin cambios en futuras versiones de JDK. También ofrece una vista previa de las características del lenguaje y API de incubación para recopilar comentarios de la comunidad de Java. Las actualizaciones incluyen:

Mejora del lenguaje Java

JEP 409: Clases selladas: las clases y las interfaces selladas restringen qué otras clases o interfaces pueden extenderlas o implementarlas. Esta mejora es otra mejora de Project Amber, que tiene como objetivo aumentar la productividad del desarrollador mediante la evolución del lenguaje Java.

Actualizaciones y mejoras a las bibliotecas

JEP 306: Restaurar la semántica de punto flotante siempre estricta: el lenguaje de programación Java y la máquina virtual Java originalmente solo tenían una semántica de punto flotante estricta. A partir de Java 1.2, se permitieron pequeñas variaciones en esa semántica estricta de forma predeterminada para adaptarse a las limitaciones de las arquitecturas de hardware vigentes en ese momento. Esas variaciones no son más útiles o necesarios, por lo que han sido eliminados por JEP 306.
JEP 356: Generador de números pseudoaleatorios mejorado: proporciona nuevos tipos de interfaz e implementaciones para generadores de números pseudoaleatorios (PRNG). Este cambio mejora la interoperabilidad de diferentes PRNG y facilita la solicitud de un algoritmo basado en requisitos en lugar de codificar una implementación específica.
JEP 382: Nuevo canal de procesamiento de macOS: implementa un canal de Java 2D para macOS mediante la API de Apple Metal. La nueva canalización reducirá la dependencia del JDK de la API OpenGL de Apple obsoleta.

Soporte de nueva plataforma

JEP 391: puerto macOS AArch64: transfiere el JDK a la plataforma macOS / AArch64. Este puerto permitirá que las aplicaciones Java se ejecuten de forma nativa en las nuevas computadoras Apple Silicon basadas en Arm 64.

Eliminaciones y bajas

JEP 398: Desaprovechar la API de Applet para su eliminación: todos los proveedores de navegadores web han eliminado la compatibilidad con los complementos del navegador Java o han anunciado planes para hacerlo. La API de Applet quedó obsoleta, pero no para su eliminación, en Java 9 en septiembre de 2017.
JEP 407: Eliminar la activación de RMI: elimina el mecanismo de activación de invocación de método remoto (RMI), al tiempo que conserva el resto de RMI.
JEP 410: Eliminación del compilador experimental AOT y JIT: el compilador experimental basado en Java con anticipación (AOT) y justo a tiempo (JIT) fueron características experimentales que no tuvieron mucha adopción. Al ser opcionales, ya se eliminaron del JDK 16. Este JEP elimina estos componentes del código fuente del JDK.
JEP 411: Desaproveche el administrador de seguridad para su eliminación: el administrador de seguridad se remonta a Java 1.0. No ha sido el medio principal para proteger el código Java del lado del cliente durante muchos años, y rara vez se ha utilizado para proteger el código del lado del servidor. Eliminarlo en una versión futura eliminará una carga de mantenimiento significativa y permitirá que la plataforma Java avance.

Programas Java de prueba futura

JEP 403: encapsular fuertemente los componentes internos de JDK: ya no será posible relajar la encapsulación fuerte de los elementos internos a través de una sola opción de línea de comandos, como era posible en JDK 9 a JDK 16. Aún será posible acceder a las API internas existentes , pero ahora requerirá enumerar, como parámetros de línea de comandos o atributos de manifiesto del archivo JAR, cada paquete para el cual la encapsulación debe relajarse. Este cambio dará lugar a aplicaciones más seguras y menos dependencias de los detalles de implementación del JDK interno no estándar.

Vistas previas e incubadoras para versiones posteriores de JDK

JEP 406: Coincidencia de patrones para conmutador (vista previa): permite probar una expresión con varios patrones, cada uno con una acción específica, de modo que las consultas complejas orientadas a datos se puedan expresar de forma concisa y segura.
JEP 412: API de memoria y función externa (incubadora): mejora las API de incubación introducidas en JDK 14 y JDK 15 que permiten que los programas Java interoperen con código y datos fuera del tiempo de ejecución de Java. Al invocar de manera eficiente funciones externas (es decir, código fuera de la JVM) y al acceder de manera segura a la memoria externa, estas API permiten a los programas Java llamar a bibliotecas nativas y procesar datos nativos sin la fragilidad y complejidad de la Interfaz nativa de Java (JNI). Estas API se están desarrollando en Project Panamá, cuyo objetivo es mejorar la interacción entre el código Java y el que no es Java.
JEP 414: API de vector (segunda incubadora): permite expresar cálculos vectoriales que se compilan de manera confiable en tiempo de ejecución para obtener instrucciones vectoriales optimizadas en arquitecturas de CPU compatibles, logrando así un rendimiento superior a los cálculos escalares equivalentes.

Referencia:

Oracle Press Release. (14 de 09 de 2021). Oracle News Connect. Obtenido de: Oracle Releases Java 17: https://www.oracle.com/news/announcement/oracle-releases-java-17-2021-09-14/

Utilizando Google™ Translate®

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *