logo de javaDespués de estar en beta por casi un año y llegarl al millón de descargas, Java SE 6 Update 10 (6u10) se encuentra publicado en versión final. Con esta actualización Sun busca cumplir su promesa de una experiencia de usuario mejorada para los clientes ricos, y prepara el camino para JavaFX Desktop 1.0, próximo a salir.

De esta manera, Java 6u10 tiene muchísimas mejoras interesantes enfocadas a los applets, que venían quedando en el olvido desde hace un tiempo. ¿Lograrán volver a tener relevancia? Veamos en detalle las mejoras para los applet Java.

Un mejor mundo para los applets Java

En Java 6u10, el Java Plug-In cuenta con una arquitectura completamente renovada. En vez de ejecutar los applets en el mismo proceso de sistema operativo que el navegador web, se ejecuta en uno o más instancias de Máquinas Virtuales Java que se conectan al navegador para lograr una interoperación completa con la página web. Esta nueva arquitectura tiene varias ventajas y cuenta con muchas características nuevas.

Mejor confiabilidad

La JVM que ejecuta al applet está aislada del navegador web a nivel del sistema operativo. Si algo sale mal mientras se ejecuta el applet, o si un applet se reusa a cerrarse, el nuevo Java Plug-In detecta la situación y maneja el error acorde; el navegador web no se ve afectado.

Soporte para JNLP integrado

El nuevo plug-in tiene la capacidad de ejecutar applets directamente desde archivos JNLP, unificando así el despliegue de contenido Java tanto dentro como fuera del navegador (a través de Java Web Start). Los desarrolladores ahora pueden reusar las extensiones JNLP para contar con funcionalidad avanzada, como ser librerias de JavaFX, gráficos 3D con OpenGL y otros dentro de los applets. Los applets ahora pueden usar el API de JNLP para persistir datos, acceder al sistema de archivos, y otra funcionalidad.

Argumentos de línea de comandos por applet

Los argumentos de línea de comando de la JVM pueden especificarse para cada applet, brindando así control detallado para opciones como el tamaño del heap y aceleración por hardware para Java 2D. Los applets iniciados via JNLP incorporan estos argumentos y propiedades de sistema en el archivo JNLP. Los applets antiguos pueden embeber estos argumentos en el código HTML de la página.

Soporte para múltples JRE

Cada instancia de un applet puede pedir una versión distinta de JRE para ejecutarse. Esta característica está pensada para clientes corporativos, quienes a veces preferien certificar sus applets contra una versión o familia particular de JRE. Ambas selecciones (de un JRE particular, o de toda una familia de JRE) se pueden hacer en el nuevo plug-in.

Mejoras en la comunicación con Java/JavaScript

Se reimplementó completamente la comunicación entre el motor JavaScript, el navegador web y el lenguaje de programación Java. Esta nueva implementación es compatible con versiones anteriores, y brinda más confiabilidad, rendimiento y portabilidad entre distintos navegadores, tanto para Java invocando a JavaScript como para JavaScript invocando a Java. La funcionalidad "LiveConnect", antes exclusiva de Mozilla que permitía, por ejemplo, invocar a métodos estáticos de clases Java e instanciar objetos Java desde JavaScript, ahora está disponible para todos los navegadores.

Experiencia de usuario mejorada

El nuevo Java Plug-In inicia a los applets en segundo plano, por lo que el navegador se mantiene siempre respondiendo. Los applets aparecen en la página web cuando están listos para ejecutarse.

Mejoras en el ciclo de vida del applet

Las llamadas a los métodos del ciclo de vida del applet (init, start, stop y destroy) son más determinísticas y se mejoró el compotamiento en los distintos navegadores. El caché del classloader de applets y el ciclo de vida anterior siguen siendo soportados para brindar compatibilidad con applets viejos.

Mejor soporte para heaps de gran tamaño

Históricamente, el tamaño máximo para el heap para los applets era limitado (se indicaba a través del Panel de Control de Java). Se corrigió esta limitación en el nuevo Java Plug-In; los applets ahora pueden usar tanto espacio de heap como las aplicaciones de línea de comando.

Mejor soporte para Windows Vista

Los applets firmados que se ejecutan en el Modo Protegido del Internet Explorer en Windows Vista ahora tienen los mismos privilegios que las aplicaciones normales, eliminando así una barrera de portabilidad para esta plataforma.

El Java-Plug In

El nuevo Java Plug-In está disponible para Internet Explorer 6, 7 y Firefox 3, en Windows XP, Windows Vista, Solaris y Linux. Por otro lado, también funciona en Google Chrome beta.

Por otro lado, el JRE ya llega a 14.5MB, por lo que la distribución era un problema. Con 6u10 Sun apunta a mejorar este tema. El instalador online de Java Kernel le permite a los usuarios que se inician en Java ejecutar applets y aplicaciones Java Web Start sin tener que esperar que se descargue toda la Plataforma Java. Tan sólo se descargan el Java Kernel, que pesa entre 4-5MB. Esta instalación va a satisfacer las necesidades de la mayoría de los applets y aplicaciones Java, y cualquier otra librería adicional que se necesite se descargan en tiempo de ejecución para copmletar la instalación de Java Kernel. También se mejoró el actualizador de Java, que utiliza mecanismos de actualización selectiva, lo que permite actualizar a componentes específicos de la plataforma Java en vez de tener que descargar todo un JRE completo cada vez.

Java Deployment Toolkit

Java Deployment Toolkit es la utilidad que permite instalar aplicaciones y applets Java usando una interfaz JavaScript muy simple. Este JavaScript detecta automáticamente si el cliente tiene instalado el JRE correcto, y ejecuta la aplicación.

Usar Java Deployment Toolkit para iniciar un applet es realmente muy sencillo, como vemos a continuación. El siguiente script JavaScript ejecuta el applet AppletDeEjemplo.jar, que se ejecutará usando la versión 1.6 del JRE.

<script src="http://java.com/js/deployJava.js"></script>

<script>
deployJava.runApplet({codebase:"http://www.ejemplo.com/applets/",
archive:"AppletDeEjemplo.jar", code:"Main.class",
width:"320", Height:"400"}, null, "1.6");
</script>

Java Quick Starter (JQS)

Otra de las características más importantes que se agregó a Java 6u10 es el llamado Java Quick Starter (JQS), que mejora el tiempo de inicio para la mayoría de las aplicaciones y applets Java.

JQS se encuentra habilitado por defecto en Windows XP y Windows 200, y no es necesario para Windows Vista (ya que este sistema operativo cuando con su propio mecanismo de precarga). Un proceso llamado jqs.exe se ejecuta en segundo plano para permitir el inicio rápido de las aplicaciones.

La mejora de rendimiento se logra al precargar en memoria algunos de los archivos Java que más se usan (ocupando no más de 20MB de memoria). Luego, cuando se inicia una aplicación Java, se requiere muchas menos operaciones de E/S, lo que resulta en inicios mucho más veloces.

Java 2D, aceleración y Nimbus

También mejorando el rendimiento de Java 6u10 se encuentran nuevas características de aceleración por hardware usando Direct3D, lo que se traduce en mejoras para aplicaciones Swing.

Java 6u10 también ofrece un nuevo look&feel llamado Nimbus, basado completamente en gráficos vectoriales, lo que permite que sea dibujado en cualquier resolución.

Inspiración.

"Si tú tienes una manzana y yo tengo una manzana e intercambiamos las manzanas, entonces tanto tú como yo seguiremos teniendo una manzana cada uno. Pero si tú tienes una idea y yo tengo una idea, e intercambiamos las ideas, entonces ambos tendremos dos ideas"

Bernard Shaw