NoticiasSoftware

Oracle anuncia Java 18

La nueva versión ofrece miles de optimizaciones en materia de rendimiento, estabilidad y seguridad, y nueve propuestas de mejoras de JDK

Oracle anuncia hoy que ya está disponible Java 18, la última versión del popular lenguaje de programación. Java 18 (Oracle JDK 18) ofrece miles de mejoras de rendimiento, estabilidad y seguridad, incluidas nueve novedades que impulsarán aún más la productividad de los desarrolladores.

La edición más reciente de Java Development Kit (JDK) incorpora una serie de actualizaciones, incluidas nueve propuestas de mejora de JDK (JEP). Estas incluyen la capacidad de agregar Code Snippets en Java API Documentation (JEP 413), lo que simplifica el añadido de código fuente de ejemplo en la documentación de la API y Simple Web Server (JEP 408) para la creación de prototipos y la realización de comprobaciones. Los desarrolladores pueden analizar dos módulos de incubación: la Vector API (JEP 417) y la Foreign Function and Memory API (JEP 419), así como una función de vista previa: Pattern Matching for Switch (JEP 420).

"El lanzamiento de Java 18 demuestra el compromiso constante de Oracle por proporcionar a las empresas y a los desarrolladores un acceso más rápido a mejoras con la cadencia de lanzamiento de funciones cada seis meses", asegura Georges Saab, vicepresidente de desarrollo de Java Platform Group en Oracle. "Seguimos realizando inversiones técnicas destinadas a reforzar el rendimiento, la estabilidad y la seguridad de las implementaciones de la plataforma Java SE, así como Java Development Kit".

"Los desarrolladores de Java quieren una innovación continua con funciones de lenguaje de programación modernas, mejoras en la experiencia de desarrollador, servicios gestionados en la nube y estabilidad", dijo James Governor, analista principal de RedMonk. "Con la cadencia consistente de lanzamientos semestrales de Java, Oracle está satisfaciendo esas demandas, ayudando a mantener la relevancia de Java para las aplicaciones y cargas de trabajo modernas".

Acelerando la adopción de Java en la nube

Recientemente, Oracle presentó Java Management Service (JMS), un nuevo servicio nativo de Oracle Cloud Infrastructure (OCI) diseñado para gestionar los tiempos de ejecución y aplicaciones Java on-premise o en cualquier nube. JMS proporciona la información necesaria para gestionar los despliegues de Java en todas las esferas de la empresa. Asimismo, se incluye Java Management Service para cargas de trabajo de OCI y para suscriptores de Java SE.

Java 18 es la versión más reciente, siguiendo la cadencia de lanzamientos cada seis meses de Java, y es el fruto de una extensa colaboración entre ingenieros de Oracle y otros miembros de la comunidad mundial de desarrolladores de Java, a través del proyecto OpenJDK y de Java Community Process (JCP). Esto proporciona un flujo constante de innovaciones, al tiempo que brinda mejoras continuas en el rendimiento, la estabilidad y la seguridad, lo que aumentará la presencia de Java en las organizaciones y sectores de todos los tamaños. 

Los cambios más importantes de Java 18 son:

Actualizaciones y mejoras de bibliotecas

JEP 400: UTF-8 por defecto: establece UTF-8 como el conjunto de caracteres por defecto de las API estándar de Java. Con este cambio, las API que dependen del conjunto de caracteres predeterminado se comportarán de manera coherente en todas las implantaciones, sistemas operativos, entornos regionales y configuraciones.

JEP 408: Simple Web Server: una herramienta de línea de comandos y API para iniciar un servidor web mínimo que solo sirve archivos estáticos. Esta herramienta será útil para la definición de prototipos, la codificación ad hoc y la realización de comprobaciones, especialmente en contextos educativos.

JEP 416: Reimplementar Core Reflection con Method Handles: implementa java.lang.reflect.Method, Constructor y Field además de identificadores de método java.lang.invoke. Al lograr que el método identifique el mecanismo subyacente para la reflexión, se reducen los costes de mantenimiento y desarrollo de las API java.lang.reflect y java.lang.invoke.

JEP 418: Resolución de direcciones de Internet SPI: define una interfaz de proveedor de servicios (SPI) para la resolución de nombres de host y direcciones, de modo que java.net.InetAddress pueda utilizar solucionadores aparte del que viene de serie con la plataforma.

Herramientas

JEP 413: JEP Code Snippets en Java API Documentation: introduce la etiqueta @snippet para que el doclet estándar de JavaDoc simplifique la inclusión del código fuente de ejemplo en la documentación de la API.

Vista previa e incubadores para versiones posteriores de JDK

JEP 417: Vector API (Third Incubator): proporciona una API para que los desarrolladores utilicen con toda confianza las arquitecturas CPU que proporcionan extensiones de vectores escalables. De esta forma se incrementará el rendimiento frente a cálculos equivalentes de procesadores no ampliados.
 

JEP 419: Foreign Function and Memory API (Second Incubator): permite a los programas Java interoperar con código y datos fuera del tiempo de ejecución de Java. Al invocar de forma eficaz funciones ajenas (es decir, código fuera de JVM) y al acceder de forma segura a la memoria ajena (es decir, memoria no gestionada por JVM), la API permite a los programas Java invocar bibliotecas nativas y procesar datos nativos sin la fragilidad y las dificultades de JNI.

JEP 420: Pattern Matching for Switch (Second Preview): mejora el lenguaje de programación Java con coincidencia de patrones para expresiones y sentencias de cambio, junto con extensiones para el lenguaje de patrones. La ampliación de la coincidencia de patrones para cambiar permite que una expresión se compruebe en relación con diversos patrones, cada uno con una acción específica, de modo que las consultas complejas orientadas a los datos se puedan expresar de forma concisa y segura. 

Y en el futuro

JEP 421: Deprecate Finalization for Removal: la finalización permanece activada por defecto por ahora, pero se puede desactivar para facilitar las comprobaciones. En futuras versiones, se desactivará por defecto y, posteriormente, se eliminará. Los mantenedores de bibliotecas y aplicaciones que dependen de la finalización deberían considerar la migración a otras técnicas de gestión de recursos, como la sentencia try-with-resources y los limpiadores.

Computing 814