Casos de éxito

Oracle lanza Java 24

Oracle anunció la disponibilidad de Java 24, la última versión del lenguaje de programación y la plataforma de desarrollo número uno del mundo. Java 24 (Oracle JDK 24) entrega miles de mejoras para ayudar a los desarrolladores a maximizar la productividad y fomentar la innovación. Además, las mejoras en el rendimiento, estabilidad y seguridad de la plataforma ayudan a las organizaciones a acelerar su crecimiento empresarial.

‘A medida que Java se acerca a su 30º aniversario más adelante este año, sigue ampliando su conjunto de herramientas para satisfacer las necesidades cambiantes de los desarrolladores, incluidas capacidades que apoyan el desarrollo de aplicaciones basadas en IA’, dijo Arnal Dayaratna, vicepresidente de investigación, desarrollo de software, IDC. ‘La amplia gama de capacidades en la nueva versión ayudará a aumentar la productividad de los desarrolladores, permitiéndoles entregar aplicaciones ricas en funciones a sus organizaciones y clientes más rápido y de manera más eficiente. La versión Java 24 subraya que Java es incomparable para el desarrollo de aplicaciones empresariales de gran escala y esenciales’.

‘En los últimos 30 años, Java ha proporcionado a los desarrolladores una plataforma integral para construir y desplegar aplicaciones que aborden una amplia gama de casos de uso’, dijo Georges Saab, vicepresidente senior de Oracle Java Platform y presidente de la junta directiva de OpenJDK. ‘Con más de 20 nuevas características que abarcan cada elemento de Java, incluidas nuevas capacidades de IA y criptografía post-cuántica, la versión Java 24 brinda a los desarrolladores las herramientas necesarias para crear aplicaciones innovadoras impulsadas por IA. Como administradores de Java, estamos emocionados de trabajar con la comunidad global de Java para seguir entregando una constante corriente de nuevas características a través de nuestra cadencia predecible de seis meses’.

CAT

Características de lenguaje

  • JEP 488: Tipos Primitivos en Patrones, instanceof y switch (Segunda vista previa): Ayuda a los desarrolladores a aumentar la productividad en la programación de Java al hacer que el lenguaje sea más uniforme y expresivo, al mejorar la coincidencia de patrones eliminando restricciones relacionadas con los tipos primitivos que los desarrolladores encuentran al usar coincidencia de patrones, instanceof y switch. También permite patrones de tipo primitivo en todos los contextos de patrones y extiende instanceof y switch para trabajar con todos los tipos primitivos. Los desarrolladores de aplicaciones que integran inferencia de IA se beneficiarán especialmente del soporte de tipos primitivos.
  • JEP 492: Flexible Constructor Bodies (Tercera vista previa): Ayuda a los desarrolladores mejorando la confiabilidad del código al introducir dos fases en los cuerpos constructores: prólogo y epílogo. Esto permite organizar la lógica de manera más natural, evitando el uso de métodos auxiliares, constructores intermedios o argumentos adicionales. Además, mantiene la protección que impide que un constructor de subclase interfiera con la instanciación de la superclase, garantizando una implementación más confiable cuando se sobreescriben métodos.
  • JEP 494: Module Import Declarations (Segunda vista previa): Mejora la productividad al permitir importar fácilmente todos los paquetes de un módulo sin que el código de importación deba estar en un módulo propio. Esto simplifica el uso de bibliotecas modulares, facilitando a los desarrolladores, especialmente a principiantes, el acceso a bibliotecas de terceros y clases fundamentales de Java sin conocer su estructura de paquetes. También agiliza la integración de lógica empresarial con IA, bibliotecas o llamadas a servicios.
  • JEP 495: Simple Source Files and Instance Main Methods (Cuarta vista previa): Facilita a los estudiantes escribir sus primeros programas en Java sin necesidad de aprender características avanzadas desde el inicio, ofreciendo una introducción gradual a la programación. Esto permite a los educadores enseñar conceptos progresivamente y a los estudiantes comenzar con programas simples que pueden expandir con el tiempo. Además, los desarrolladores experimentados pueden escribir programas pequeños de forma más concisa y eficiente sin depender de herramientas para proyectos grandes.

Bibliotecas

  • JEP 485: Stream Gatherers: Mejora la eficiencia de los desarrolladores en la lectura, escritura y mantenimiento de código Java al ampliar la API de Streams con operaciones intermedias personalizadas. Esto permite transformar datos de formas más flexibles que las operaciones estándar, facilitando el manejo de streams de manera más adaptable y eficiente.
  • JEP 484: Class-File API: Facilita el trabajo de los desarrolladores al proporcionar una API estándar para analizar, generar y transformar archivos de clase Java según la especificación de Java Virtual Machine.
  • JEP 487: Scoped Values (Cuarta vista previa): Ayuda a los desarrolladores a aumentar la facilidad de uso, comprensión, rendimiento y robustez de sus proyectos al permitir el intercambio de datos inmutables dentro y entre hilos.
  • JEP 489: Vector API (Noveno incubador): Mejora la productividad al introducir una API para cálculos vectoriales que se optimizan en tiempo de ejecución con instrucciones específicas de la CPU. Esto permite un rendimiento superior a los cálculos escalares equivalentes, beneficiando especialmente la inferencia de IA y otros escenarios de cómputo intensivo.
  • JEP 499: Structured Concurrency (Cuarta vista previa): Mejora el mantenimiento, la confiabilidad y la observabilidad del código multihilo con una nueva API de concurrencia estructurada. Al gestionar tareas relacionadas como una sola unidad de trabajo, reduce riesgos comunes como fugas de hilos y demoras en la cancelación, simplificando la programación concurrente.

Bibliotecas de seguridad

  • JEP 478: Key Derivation Function API (Vista previa): Prepara a los desarrolladores para la computación cuántica al fortalecer la seguridad criptográfica de los datos en tránsito, mejorando la confidencialidad e integridad de las comunicaciones.
  • JEP 496: Quantum-Resistant Module-Lattice-Based Key Encapsulation Mechanism:  Refuerza la seguridad de las aplicaciones Java con una implementación del Mecanismo de Encapsulación de Claves Basado en Módulo-Lattice Resistente a la Cuántica (ML-KEM). Esta característica es un paso importante hacia la preparación para la poscuántica y el eventual soporte de criptografía poscuántica (PQC) para la plataforma, protegiendo claves simétricas en canales inseguros mediante criptografía de clave pública.
  • JEP 497: Quantum-Resistant Module-Lattice-Based Digital Signature Algorithm: Mejora la seguridad de las aplicaciones Java con una implementación del Module-Lattice-Based Digital Signature Algorithm (ML-DSA). Al igual que JEP 496, esta funcionalidad prepara la plataforma Java para la criptografía poscuántica, protegiendo la autenticidad de los datos y la identidad de los firmantes. ML-DSA está diseñado para ser seguro contra futuros ataques de computación cuántica y ha sido estandarizado por el Instituto Nacional de Estándares y Tecnología de Estados Unidos (NIST) en FIPS 204.

Herramientas

  • JEP 493: vinculación de Imágenes de Tiempo de Ejecución sin JMODs: Mejora la eficiencia permitiendo que jlink cree imágenes de tiempo de ejecución personalizadas sin necesidad de archivos JMOD, reduciendo el tamaño del JDK en hasta un 25 %. Esto permite vincular imágenes desde módulos en distintos formatos, como JMOD, JAR modulares o imágenes previamente vinculadas. Esta característica debe habilitarse cuando se construye el JDK; no estará habilitada por defecto y algunos proveedores de JDK pueden optar por no habilitarla.

Actualizaciones de rendimiento y tiempo de ejecución

  • JEP 450: Compact Object Headers (Experimental):  Aumenta la productividad de los desarrolladores al reducir los encabezados de objetos en la JVM HotSpotde entre 96 y 128 bits a 64 bits en arquitecturas de 64 bits. Esto ayuda a reducir el tamaño de la pila, optimizar la densidad de despliegue y mejorar la ubicación de los datos.
  • JEP 475: Late Barrier Extension for G1:  Mejora la eficiencia al trasladar la expansión de las barreras del recolector de basura G1 a una fase posterior en la compilación C2 JIT, reduciendo la sobrecarga tras optimizaciones y asignación de registros. Esto simplifica su implementación, mejorando la eficiencia, comprensión, resiliencia y calidad del código generado por C2.
  • JEP 483: Ahead-of-Time Class Loading & Linking: Mejora la productividad de los desarrolladores acelerando el inicio de aplicaciones al permitir que las clases estén disponibles de inmediato en un estado cargado y vinculado al iniciar HotSpot Java Virtual Machine. Esta característica no requiere el uso de las herramientas jlink o jpackage, ni cambios en la ejecución o el código de las aplicaciones, bibliotecas o marcos, sentando las bases para futuras mejoras en el tiempo de inicio y calentamiento.
  • JEP 490: ZGC: eliminar el modo no generacional:  Ayuda a los desarrolladores a reducir el costo de mantenimiento al eliminar el modo no generacional del recolector de basura Z (ZGC).
  • JEP 491: sincronizar hilos virtuales sin fijación:  Mejora la productividad al ampliar la escalabilidad del código Java y las bibliotecas que usan métodos y declaraciones sincronizadas. Al permitir que los hilos virtuales liberen los hilos de plataforma subyacentes, facilita la gestión eficiente de cargas de trabajo al habilitar un mayor número de hilos virtuales.

Código fuente

  • JEP 404: Generational Shenandoah (Experimental): Mejora la productividad al optimizar el recolector de basura Shenandoah con recolección generacional experimental, lo que mejora el rendimiento sostenido, la resiliencia a picos de carga y la eficiencia en el uso de memoria.
  • JEP 479: eliminar el puerto Windows x86 de 32 bits: Mejora la eficiencia al eliminar el código fuente y el soporte de compilación para Windows x86 de 32 bits, lo que simplifica la infraestructura de compilación y prueba del JDK.
  • JEP 501: descartar el puerto x86 de 32 bits para eliminación: Mejora la productividad al desaprobar el puerto x86 de 32 bits, facilitando su futura eliminación. Esto permite a los desarrolladores a acceder a nuevas características sin necesidad de implementar retrocesos para x86 de 32 bits.

Además, al introducir características modernas y seguras mientras se desaprueban y eliminan gradualmente las características inseguras, Oracle subraya su compromiso de mantener la integridad de Java y alinearse con las mejores prácticas de desarrollo de software. Oracle ha designado tres características para eliminación en una futura versión de Java: JEP 472: restringir el uso de JNI; JEP 486: deshabilitar permanentemente el administrador de seguridad; JEP 498: advertir al usar métodos de acceso a memoria en sun.misc.Unsafe.

Las características en la versión Java 24 son el resultado de la colaboración continua entre Oracle y otros miembros de la comunidad global de desarrolladores de Java a través de OpenJDK y el Java Community Process (JCP). Para más detalles sobre las características de Java 24, lee el blog técnico de Java 24.

Soporte para Global Java Community con innovación en la nube

Java ofrece mayor innovación, rendimiento, eficiencia y ahorro de costos cuando se implementa en Oracle Cloud Infrastructure (OCI), que es una de las primeras nubes hyperscaler en soportar Java 24. Al ofrecer Oracle Java SE, Oracle GraalVM y el Java SE Subscription Enterprise Performance Pack sin costo adicional en OCI, Java 24 ayuda a los desarrolladores a crear y desplegar aplicaciones que funcionan más rápido, mejor y con una optimización en la relación costo-desempeño.

La suscripción Oracle Java Universal SE proporciona a los clientes soporte de clase mundial. Incluye el Java SE Subscription Enterprise Performance Pack, soporte de triaje para toda la cartera de Java, derecho de uso de Oracle GraalVM, acceso a las características avanzadas del Java Management Service, y la flexibilidad de actualizar al ritmo del negocio de los clientes. Esto ayuda a las organizaciones de TI a gestionar la complejidad, mitigar los riesgos de seguridad y controlar los costos.

Testimonios

‘Estoy esperando con ansias el refinamiento adicional de la API de Vectores en Java 24 para mejorar aún más las aplicaciones tanto predictivas como generativas de IA’, dijo Frank Greco, presidente de NYJavaSIG. ‘Habilitar algoritmos de IA eficientes directamente en Java ayuda a garantizar que las aplicaciones de IA sean altamente eficientes y escalables en diversas plataformas de hardware modernas’.

Java 24 introduce Stream Gatherers, una poderosa mejora que brinda a los desarrolladores control preciso sobre cómo se agrupan y procesan los elementos dentro de los streams’, dijo Richard Fichtner, CEO de XDEV Software GmbH. ‘Esto hace que las transformaciones de datos complejas sean más expresivas y eficientes. Me encanta la característica porque elimina soluciones alternativas como recolectores personalizados o gimnasia de flatMap, permitiendo pipelines de streams más legibles y mantenibles’.

Java es como una salsa creada por un chef fabuloso, con ingredientes seleccionados cuidadosamente, cocidos lo justo para obtener los mejores sabores’, dijo el Dr. Venkat Subramaniam, fundador de Agile Developer, Inc. ‘Mis sabores favoritos actuales son la API de Stream Gatherers, Scoped Values y Structured Concurrency’.

‘La tercera vista previa de constructores flexibles en Java 24 es una característica notable, ya que será muy beneficioso no tener que crear un método privado auxiliar para hacer que mis llamadas a este/super sean de una sola línea’, dijo Jeanne Boyarsky, desarrolladora de CodeRanch. ‘La característica de los gatherers de streams también es intrigante, y espero ver cómo las bibliotecas crean muchas nuevas operaciones intermedias para usarlas’.

‘En JetBrains, estamos emocionados de proporcionar soporte para Java 24 en IntelliJ IDEA desde el primer día’, dijo Marit van Dijk, defensora de Java, JetBrains. ‘Nuestro compromiso de mantenernos al ritmo de las últimas mejoras de Java ayuda a garantizar que los desarrolladores puedan adoptar sin problemas las valiosas nuevas características, mientras que la posibilidad de descargar Java 24 directamente dentro del IDE hace que la configuración sea sin esfuerzo’.

¡MANTENGÁMONOS EN CONTACTO!

Nos encantaría que estuvieras al día de nuestras últimas noticias y ofertas 😎

Autorizo al Prensario y a sus anunciantes a almacenar los datos solicitados y acepto que puedan enviarme comunicaciones de sus productos y servicios.

¡No hacemos spam! Lee nuestra política de privacidad para obtener más información.

Mostrar más

Publicaciones relacionadas

Botón volver arriba