Java SE 6

Esta versión se acompaña del correspondiente paquete de desarrollo o JDK (Java Developer Kit) y, opcionalmente, de la versión 5.5 de NetBeans, un entorno de desarrollo tipo RAD capaz de aprovechar las innovaciones de Java 6 y que puede ser utilizado también con otros lenguajes y compiladores

3 junio 2007

Tras las distintas versiones y revisiones por las que ha pasado a lo largo de algo más de una década, puede decirse que la plataforma Java, y en particular la edición conocida como Java SE (Standard Edition), dirigida a la ejecución de aplicaciones en equipos de escritorio, ha alcanzado su plena madurez. Ese estado se denota tanto por las características funcionales del software como por el hecho de que Sun Microsystems haya decidido, finalmente, liberar como código abierto ciertas partes de este producto.

Esta versión se acompaña del correspondiente paquete de desarrollo o JDK (Java Developer Kit) y, opcionalmente, de la versión 5.5 de NetBeans, un entorno de desarrollo tipo RAD capaz de aprovechar las innovaciones de Java 6 y que puede ser utilizado también con otros lenguajes y compiladores.

Las aplicaciones Java se ejecutan más rápidamente sobre la versión 6 de la plataforma, al tiempo que se integran de una forma más coherente con las características de cada sistema operativo en particular, especialmente en Windows, Linux y Solaris. Se trata, además, de la primera versión de Java preparada para operar sobre el nuevo Windows Vista. De cara a los programadores, el JDK para Java SE 6 incorpora un servidor web de desarrollo, que facilita la comprobación de aplicaciones de servidor sin necesidad de recurrir a la plataforma J2EE, así como todo lo necesario para implementar servicios web.
Interfaces de usuario
La plataforma Java SE está pensada para ejecutar aplicaciones de escritorio que, en la mayoría de las ocasiones, cuentan con lo que se conoce como GUI (Graphical User Interface), por lo que todas las facilidades que se ofrezcan al programador para crear este elemento fundamental de los programas serán bienvenidas.
En este sentido, esta revisión 6 incorpora un numeroso abanico de mejoras que, si bien pueden considerarse, en su mayor parte, como pequeños avances, en conjunto contribuirán a facilitar considerablemente el trabajo del programador.
En el AWT existen dos nuevas clases, llamadas SystemTray y TrayIcon, que hacen posible colocar en el área de notificaciones de la barra de tareas iconos con menús asociados, algo muy habitual en Windows y que también resulta posible en escritorios como KDE y Gnome.
La primera clase cuenta con un método que los programas deben utilizar para saber si existe o no la barra de tareas, o un elemento de interfaz equivalente, utilizando la segunda para agregar su icono de aplicación. Los componentes Swing de Java 6 han sido rediseñados para, al funcionar sobre Windows XP y Windows Vista, efectuar el rendering de los componentes a través del API de UxTheme, conocida por ser la base de WindowsBlinds.
El resultado es que las interfaces diseñadas con Java 6 se comportan en Windows Vista como lo harían las nativas, algo que no ocurría con versiones previas. Además del rendimiento, que se ha incrementado de forma que las interfaces de Java ya no aparentan ser lentas respecto a las nativas al actualizar su interfaz de usuario, también se ha mejorado la visualización del texto en pantallas tipo LCD, haciendo más cómoda la lectura. Para ello, se utiliza una técnica basada en subpíxeles, similar a la conocida ClearType de Microsoft, disponible en todos los sistemas sobre los que se ejecuta esta plataforma sin necesidad de que el programador la active explícitamente.
Otra novedad interesante es la denominada Desktop API, un conjunto de métodos y acciones que permiten a las aplicaciones Java interactuar con servicios de escritorio del sistema operativo subyacente para, por ejemplo, lanzar la ejecución del programa asociado con un determinado tipo de archivo, abrir el navegador por defecto para ir a un cierto lugar o enviar un trabajo de impresión. Además de las ya mencionadas, existen otras novedades relativas a interfaces de usuario, como la posibilidad de mostrar una ventana de tipo splash mientras se inicializa la máquina virtual y se carga la aplicación, un conjunto nuevo de opciones a la hora de mostrar ventanas modales o un notable incremento en el rendimiento de las clases que efectúan entrada/salida de archivos gráficos.
Web y bases de datos
Hasta la versión previa de la plataforma Java, si se precisaba desarrollar servicios web, había que recurrir a la edición empresarial Java EE (Enterprise Edition). La nueva iteración, por el contrario, nos permite crear tanto servicios web como consumidores de dichos servicios, para lo cual incorpora JAX-WS 2.0 (Java API for XML Web Services).
La designación de una clase como servicio web se efectúa mediante anotaciones Java (Java annotations), una técnica similar a los atributos que se utilizan en la plataforma Microsoft .NET, tras lo cual es preciso utilizar una herramienta que se encarga de generar, a partir de las anotaciones y el código de la clase, todos los elementos precisos para publicar un servicio web, incluyendo la descripción WSDL (Web Services Description Language), que es el estándar a la hora de informar a los potenciales consumidores sobre las características del servicio que se ofrece.
La depuración de este tipo de proyectos se ve simplificada gracias a la inclusión de un servidor web de desarrollo en la propia plataforma, una posibilidad que ya existía en otros productos, de forma que no es imprescindible contar con una instalación de Apache o IIS, los dos servidores HTTP más usuales, para comprobar el funcionamiento del servicio web. Asimismo, el consumo de los servicios se ve en gran medida automatizado gracias a una herramienta que, partiendo de la descripción WSDL, genera los módulos de código apropiados para acceder a ellos como si fuesen objetos locales. En cuanto al trabajo con bases de datos se refiere, aparte de una renovada versión de JDBC, el mecanismo estándar en Java para acceder a servidores de datos, Java SE 6 incluye la nueva Java DB.
Programada completamente en Java y desarrollada en la Fundación Apache bajo la denominación Derby, se caracteriza principalmente por su reducido tamaño, apenas de 2 Mbytes, ofreciendo, sin embargo, servicios similares a cualquier RDBMS, incluyendo el estándar SQL y el uso de transacciones. Lo que ha hecho Sun es crear a partir de Apache Derby una versión a medida para Java SE 6, siendo el resultado Java DB.
Java DB puede ser instalada a través de una interfaz web sin ninguna intervención por parte del usuario final, resultando también una solución adecuada para aplicaciones que han de ejecutarse en entornos con recursos reducidos, como PDA, teléfonos móviles de última generación y, en general, todo tipo de dispositivos que utilicen J2ME (Java 2 Micro Edition). La licencia Apache con que se distribuye Java DB permite su uso libre por parte de empresas y organizaciones.
Integración con lenguajes de script
El uso de lenguajes de guiones o script no es algo nuevo, pero en los últimos tiempos su uso está extendiéndose, ya que cuentan con múltiples ventajas cuando se aplican en ámbitos concretos, como la creación rápida de prototipos, dado su carácter dinámico, sin comprobación estricta de tipos y relativa sencillez. Hasta el momento, no existía un mecanismo que permitiese acceder desde un guión, desde código escrito en un lenguaje de script, a objetos alojados en módulos de clases Java.
Esto impedía, por ejemplo, generar contenido web en un servidor Java directamente desde un guión, siendo preciso utilizar código en este lenguaje previamente compilado. Estas posibilidades se han implementando en la versión 6 gracias a una API abierta basada en la especificación JSR 223, que también hace posible embeber motores de scripting dentro de aplicaciones Java.
En principio, utilizando la mencionada API JSR 223, sería posible incorporar a la nueva plataforma cualquier motor de ejecución de guiones, sin importar el lenguaje. Por defecto se incluye el motor Mozilla Rhino, que permite emplear el lenguaje JavaScript dentro de aplicaciones escritas en Java. Cada motor aparece para las aplicaciones Java como un objeto ScriptEngine, a través del cual es posible evaluar dinámicamente sentencias en el lenguaje de script que corresponda.
Puntos finales
Con esta versión para entornos de escritorio, Sun ha dado un paso en la mejora de la experiencia de los usuarios al incrementar la integración con las características de cada sistema en particular y al aumentar el rendimiento de ejecución de las aplicaciones, dos factores que históricamente han sido sus obstáculos frente a otras soluciones, en equipos de escritorio.
También es destacable que ciertos elementos de la edición empresarial de Java, como los relacionados con el desarrollo de servicios web, se hayan traslado a la versión de escritorio que nos ocupa.
El SDK para Java SE 6 puede obtenerse opcionalmente con NetBeans 5.5, un entorno muy recomendable y cuyas nuevas características le permitirán competir mejor con Eclipse, el rey de los entornos para Java.

Características
Plataforma de ejecución de aplicaciones escritas en lenguaje Java, disponible para Windows, Linux, Solaris y Mac OS X, lo que facilita la portabilidad de los proyectos.