noticias

Java 23: mejoras y novedades



Dirección copiada

Ya está disponible Java 23, que introduce mejoras en el tiempo de ejecución, las bibliotecas y las herramientas incluidas en el kit de desarrollo de Java (JDK)

Publicado el 26 sept 2024



Concept of java programming language. Web development software t

Oracle ha anunciado que ya está disponible Java 23, la última versión de uno de los lenguajes de programación y plataforma de desarrollos más usados del mundo. Java 23 (Oracle JDK 23) ofrece miles de mejoras para ayudar a los desarrolladores a aumentar la productividad e impulsar la innovación, mientras que las mejoras en el rendimiento, la estabilidad y la seguridad de la plataforma ayudan a las organizaciones a acelerar el crecimiento empresarial.

“Java sigue evolucionando para satisfacer las necesidades cada vez más diversas de desarrollo de aplicaciones modernas de las organizaciones”, afirma Arnal Dayaratna, research vice president de software development de IDC. “La nueva versión permite a los desarrolladores ampliar su conjunto de herramientas y aumentar la productividad, ayudándoles a construir y entregar aplicaciones que aprovechan el poder de tecnologías innovadoras como la IA. Al ofrecer nuevas capacidades innovadoras cada seis meses, Java continúa ayudando a los equipos de desarrollo a añadir un valor significativo a sus organizaciones”.

Además de las nuevas mejoras y características para los desarrolladores, Java 23 ofrece un significativo valor a sus organizaciones. Por ejemplo, Java 23 está respaldado por la reciente GA de Java Management Service (JMS) 9.0, un servicio nativo de Oracle Cloud Infrastructure (OCI) que proporciona una consola y un panel de control unificados para ayudar a gestionar los tiempos de ejecución y las aplicaciones Java en las instalaciones o en cualquier nube. JMS 9.0 incluye varias mejoras en la usabilidad, mientras que Oracle JDK 23 proporciona más opciones para optimizar el rendimiento con la incorporación del compilador Graal, un compilador dinámico just-in-time (JIT) escrito en Java que convierte el bytecode en código máquina optimizado.

“Las nuevas funciones de Java 23 ayudan a los desarrolladores de todos los niveles de especialización a aumentar su productividad y agilizar el desarrollo de aplicaciones de alto rendimiento, seguras y escalables”, indica Georges Saab, senior vicepresident de Oracle Java Platform y responsable del consejo de gobierno de OpenJDK. “Con una amplia gama de nuevas funciones y herramientas diseñadas para ayudar a los desarrolladores a crear y ofrecer aplicaciones de forma más rápida y eficaz, Java 23 ayuda a los equipos de desarrollo y a sus organizaciones a impulsar la innovación y aumentar el crecimiento empresarial”.

Java 23 introduce mejoras en el lenguaje Java, el tiempo de ejecución, las bibliotecas y las herramientas incluidas en el kit de desarrollo de Java (JDK). Las actualizaciones más importantes de Java 23 son:

Características del lenguaje a través del Proyecto Amber

  • JEP 455: Primitive Types in Patterns, instanceof, and switch (Preview): ayuda a aumentar la productividad de la programación Java haciendo el lenguaje más uniforme y expresivo. Al ayudar a eliminar las restricciones relativas a los tipos primitivos que los desarrolladores encuentran al utilizar la concordancia de patrones, instanceof y switch, mejora la concordancia de patrones al permitir los de tipo primitivo en todos los contextos de patrones, y también amplía instanceof y switch para que funcionen con todos los tipos primitivos.
  • JEP 476: Module Import Declarations (Preview): ayuda a los desarrolladores a mejorar la productividad permitiéndoles importar rápida y fácilmente todos los paquetes exportados por un módulo, sin necesidad de que el código de importación esté en el propio módulo. Esto simplifica la reutilización de bibliotecas modulares para todos los desarrolladores, y ayuda a los principiantes a utilizar más fácilmente bibliotecas de terceros y clases fundamentales de Java sin necesidad de aprender dónde se encuentran en una jerarquía de paquetes.
  • JEP 477: Implicitly Declared Classes and Instance Main Methods (Third Preview): ayuda a acelerar el aprendizaje y el desarrollo de habilidades ofreciendo una rampa de acceso suave a la programación Java para permitir a los estudiantes escribir sus primeros programas sin necesidad de comprender las características del lenguaje diseñadas para grandes programas. Como resultado, los profesiones e instructores pueden introducir conceptos gradualmente, y los estudiantes pueden escribir declaraciones simplificadas para programas de una sola clase y ampliar sin problemas sus programas con características más avanzadas a medida que crecen sus habilidades. Además, los desarrolladores Java experimentados pueden escribir pequeños programas de forma sucinta sin necesidad de utilizar herramientas diseñadas para proyectos de mayor envergadura.
  • JEP 482: Flexible Constructor Bodies (Second Preview): ayuda a los desarrolladores a aumentar la productividad permitiendo que aparezcan statements antes de una invocación explícita al constructor-como super(..) o this(..). Los statements no pueden hacer referencia a la que está en construcción, pero pueden inicializar sus campos antes de invocar a otro constructor, lo que hace que una clase sea más fiable cuando se sobrescriben métodos. Esto da a los desarrolladores una mayor libertad para expresar el comportamiento de los constructores y preserva la garantía existente de que los constructores se ejecutan en orden descendente durante la instanciación de la clase.

Bibliotecas

  • JEP 466: Class-File API (Second Preview): ayuda a los desarrolladores a mejorar la productividad proporcionando una API estándar para analizar, generar y transformar archivos de clase Java.
  • JEP 469: Vector API (Eighth Incubator): ayuda a los desarrolladores a mejorar la productividad introduciendo una API para expresar cálculos vectoriales que se compilan de forma fiable en tiempo de ejecución con instrucciones vectoriales en arquitecturas de CPU compatibles. Como resultado, los desarrolladores pueden conseguir un rendimiento superior al de los cálculos escalares equivalentes.
  • JEP 473: Stream Gatherers (Second Preview): ayuda a los desarrolladores a mejorar la productividad mejorando la API de flujos para que admita operaciones intermedias personalizadas, lo que permite a las cadenas de flujos transformar los datos de formas que no son fáciles de conseguir con las operaciones intermedias integradas existentes. Al hacer que las canalizaciones de flujos sean más flexibles y expresivas y permitir que las operaciones intermedias personalizadas manipulen flujos de tamaño infinito, esta función permite a los desarrolladores ser más eficientes en la lectura, escritura y mantenimiento del código Java.
  • JEP 480: Structured Concurrency (Third Preview): ayuda a los desarrolladores a mejorar el mantenimiento, la fiabilidad y la observabilidad del código multihilo simplificando la programación concurrente mediante una nueva API para la concurrencia estructurada. Al consolidar grupos de tareas relacionadas que se ejecutan en diferentes hilos en una única unidad de trabajo, la concurrencia estructurada puede ayudar a eliminar riesgos comunes derivados de la cancelación y el cierre, como fugas de hilos y retrasos en la cancelación.
  • JEP 481: Scoped Values (Third Preview): ayuda a los desarrolladores a aumentar la facilidad de uso, la comprensibilidad, el rendimiento y la solidez de sus proyectos al permitir el uso compartido de datos inmutables dentro de los subprocesos y entre ellos.

Actualizaciones de rendimiento y tiempo de ejecución

  • JEP 474 ZGC: Generational Mode by Default: ayuda a los desarrolladores a aumentar la eficiencia cambiando el modo por defecto del Z Garbage Collector (ZGC) al modo generacional, lo que reduce los recursos y costes de mantenimiento necesarios para soportar dos modos diferentes.

Herramientas

  • JEP 467: Markdown Documentation Comments: ayuda a los desarrolladores a aumentar la eficiencia y la productividad al permitir que los comentarios de la documentación Javadoc se escriban en Markdown en lugar de únicamente en HTML y @-tags Javadoc. Al obtener la capacidad de utilizar la sintaxis Markdown en los comentarios de documentación junto con los elementos HTML y las etiquetas JavaDoc, los desarrolladores pueden escribir y leer más fácilmente los comentarios de documentación de la API en forma de código fuente sin afectar negativamente a la interpretación de los comentarios de documentación existentes.

Administración

  • JEP 471: Deprecate the Memory-Access Methods in sun.misc.unsafe for Removal: proporciona a los desarrolladores un conjunto de herramientas racionalizadas ayudándoles a comprender cuándo sus aplicaciones dependen, directa o indirectamente, de los métodos de acceso a memoria en sun.misc.Unsafe, cuya eliminación está prevista en una futura versión.

Las funciones de la versión Java 23 son el resultado de la estrecha y continua colaboración entre Oracle y otros miembros de la comunidad mundial de desarrolladores de Java a través de OpenJDK y el Java Community Process (JCP). Para obtener más información sobre las funciones de Java 23, lee la entrada del blog técnico de Java 23.

Apoyo a la comunidad mundial de Java con innovación en la nube

Java ofrece un mayor rendimiento, eficiencia, ahorro de costes e innovación cuando se despliega en OCI, que es una de las primeras nubes de hiperescala que admite Java 23. Al ofrecer Oracle Java SE, Oracle GraalVM y Java SE Subscription Enterprise Performance Pack sin coste adicional en OCI, Java 23 ayuda a los desarrolladores a crear e implantar aplicaciones que se ejecutan más rápido, mejor y con un rendimiento optimizado en cuanto a costes.

Oracle Java Universal SE Subscription es una oferta que proporciona a los clientes el mejor soporte de su clase. Incluye soporte de triaje para toda la cartera Java, derecho a Oracle GraalVM, Java SE Subscription Enterprise Performance Pack, acceso a las funciones avanzadas de JMS y flexibilidad para actualizar al ritmo de las empresas de los clientes. Esto ayuda a las organizaciones de TI a gestionar la complejidad, mitigar los riesgos de seguridad y contener los costes.

Además, Oracle anunció recientemente que Oracle Code Assist se optimizará inicialmente para Java. Oracle Code Assist es un compañero de código de IA que facilita la creación de aplicaciones Java, y el servicio Oracle Code Assist que se ejecuta en OCI también estará disponible para C, C++, Go, JavaScript, PL/SQL, Python, Ruby y Rust.

JavaOne vuelve en 2025

JavaOne, el principal evento de la comunidad Java mundial, volverá a la bahía de San Francisco en 2025. JavaOne 2025, que tendrá lugar del 18 al 20 de marzo de 2025 en Redwood Shores, California, ofrecerá a los asistentes la oportunidad de conocer los últimos avances de Java e interactuar con expertos en Java de Oracle y personalidades del sector. Puedes obtener más información a través de la entrada de blog en Inside Java aquí, y si estás interesado en presentar una ponencia en JavaOne, consulta la convocatoria de ponencias aquí.

Artículos relacionados

Artículo 1 de 4