MuyLinux Eduardo Medina  

Java 17 lleva más allá la compatibilidad con las tecnologías de Apple

Java

Ya tenemos entre nosotros a Java 17 (o más bien JDK 17), la última versión de la tecnología creada por Sun Microsystems y ahora propiedad de Oracle que ha dominado el sector de la computación durante buena parte del presente siglo. Esto significa que también está disponible OpenJDK 17, que es a fin de cuentas la base de la implementación comercial a pesar de los temores que surgieron en el año 2018.

Desde que Oracle decidió implementar la cadencia de seis meses, los lanzamientos de las nuevas versiones del JDK no incorporan tantas novedades como antes, pero eso no quiere decir que la versión 17 no traiga algunos cambios y novedades de interés, con macOS como la plataforma aparentemente más beneficiada.

Ya que hemos mencionado al sistema operativo de Apple para el escritorio, digamos qué ha traído Java 17 para él. En primer lugar nos encontramos con compilaciones oficiales para Apple Silicon, o lo que viene a ser lo mismo, el Apple M1 y otros modelos de procesadores del gigante de Cupertino basados en ARM. Apple siempre lo ha tenido más fácil que los demás para implementar grandes cambios, así que es de esperar que todas las aplicaciones y tecnologías relevantes lleguen a la arquitectura de procesadores propia de la compañía.

Siguiendo con macOS, el pipeline de renderización de gráficos ha pasado a hacer uso de Metal, la API gráfica propia y privativa de Apple, y se ha marcado como obsoleto el soporte de OpenGL. Esto es debido a que la corporación de la manzana mordida pretende eliminar el soporte de OpenGL de macOS, así que desde MuyLinux aprovechamos la ocasión para felicitarla, en sentido irónico, por su gran apuesta por las tecnologías abiertas y multiplataforma.

Otra novedad de JDK 17 es la restauración de la semántica de coma flotante siempre estricta, que permite realizar dichas operaciones consistentes “en lugar de tener tanto una semántica de punto flotante estricta (estrictafp) como una semántica de punto flotante predeterminada sutilmente diferente”. Por otro lado, los generadores de números pseudoaleatorios han sido mejorados mediante nuevos tipos de interfaces e implementaciones.

Hace quince años o más el uso de los applets de Java en los navegadores web era bastante común, pero con el paso de los años los navegadores empezaron a dejar de soportarlos por la cantidad de problemas de seguridad que acarrearon y a que sus funciones fueron cubiertas mediante HTML5, CSS3 y JavaScript. Java 17 ha puesto los cimientos para la eliminación definitiva de la API de los applets para la web.

Continuando con más novedades de Java 17, nos encontramos con el encapsulado fuerte de todos los elementos internos del JDK excepto algunas API críticas como ‘sun.misc.Unsafe’. El mecanismo de Invocación de Método Remoto (RMI) ha sido eliminado y se han incorporado clases e interfaces selladas para restringir qué otras clases o interfaces pueden extenderlas o implementarlas.

Se ha eliminado el compilador experimental de compilación anticipada (AOT) y compilación en tiempo de ejecución (JIT) debido a que no ha sido muy usado y su mantenimiento es costoso. Oracle ha recomendado conservar “la interfaz del compilador JVM experimental de nivel Java (JVMCI) para que los desarrolladores puedan seguir utilizando versiones del compilador creadas externamente para la compilación JIT”.

Otros cambios introducidos en JDK 17 son la consideración del gestor de seguridad (Security Manager) como obsoleto para preparar su eliminación y los filtros de deserialización específicos del contexto. En la primera fase de incubación nos encontramos con la API de memoria y función ajena, mientras que en segunda fase de incubación está la API de vectores “para expresar cálculos vectoriales que se compilan de manera confiable en tiempo de ejecución para obtener instrucciones vectoriales óptimas en arquitecturas de CPU compatibles, logrando así un rendimiento superior a los cálculos escalares equivalentes”.

Todos los detalles sobre Java 17 pueden ser consultados a partir de la correspondiente página en la web de OpenJDK. La versión software libre del JDK puede ser obtenida desde el sitio web de Java (alternativamente y extraoficialmente desde AdoptOpenJDK, sobre todo para los usuarios de Windows y macOS) y la comercial desde la web de Oracle. Recomendamos recurrir a OpenJDK en caso de tener dudas sobre las restricciones de la versión comercial.

Imagen: Pixabay

Leave A Comment

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.