| Artículos | 01 MAR 1999

Java 2: la renovación de Java

Tags: Histórico
La plataforma se renueva
Francisco Charte.

Hace poco más de un mes, Sun presentaba Java 2, la nueva versión de su plataforma de desarrollo . En este artículo la analizamos y le contamos las novedades más interesantes .

Como se apuntaba en nuestro primer contacto del número anterior, Java 2 supone la actualización más importante a Java desde su nacimiento . Java 2 incorpora en la plataforma todas las novedades que han ido ofreciéndose, gota a gota, en las sucesivas revisiones menores aparecidas tras la versión 1 . 1 . No se trata, no obstante, de un simple compendio en el que se unifican APIs, utilidades y especificaciones . Java 2 también supone la madurez de Java en el campo empresarial, donde hasta ahora tenía relativamente poca presencia .

Desde su nacimiento, se ha caracterizado por sus cambios continuos . Era, realmente, una criatura que acababa de nacer y se desarrollaba a gran velocidad . Servicios que habían aparecido meses antes se apellidaban rápidamente como deprecated ( en desuso ) ante la aparición de otros nuevos . Su número se multiplicaba rápidamente . Una plataforma dinámica que, en la práctica, carecía de la madurez y estabilidad suficientes para que muchas empresas se arriesgasen a utilizarla .

Tras la aparición de Java 2 todo cambia . Se trata de una plataforma que cuenta con todos los elementos necesarios para el desarrollo de soluciones empresariales, multinivel y con todas las características originales de Java, principalmente la independencia del sistema . Según afirmaciones de responsables de Sun, no aparecerá una nueva versión de Java al menos en dieciocho o veinticuatro meses . Se trata, sin duda, de un mensaje de estabilidad que transmite confianza, la necesaria para que esas empresas citadas antes asuman el riesgo con un mínimo de garantías .

Mensajes y políticas de empresa aparte, lo que interesa a los desarrolladores y responsables de sistemas de información es conocer qué ofrece Java 2 en conjunto . En este artículo se intentará dar respuesta a esta necesidad revisando los aspectos más importantes de la nueva plataforma .

El núcleo de Java

Java cuenta con un importante número de paquetes con distintas APIs, concretamente jerarquías de clases que permiten al programador usar objetos y componentes predefinidos, acelerando el proceso de desarrollo . El núcleo de Java, originalmente compuesto por menos de una decena de paquetes, se ha extendido en Java 2 hasta contar con más de una cincuentena . A los conocidos java . lang, java . io o java . awt, ahora se añaden otros como java . beans, java . rmi, javax . swing o javax . accessibility .

El código que forma parte del núcleo de Java cuenta con algunos privilegios respecto al código de aplicación que se ejecuta sobre él . En cierta forma es como el núcleo de un sistema operativo . Java 2 incorpora un sistema de extensiones que permite a los desarrolladores crear paquetes que, una vez instalados, pasan a funcionar como si fuesen parte de ese núcleo, disponiendo de beneficios que no tienen las aplicaciones corrientes .

Lógicamente el mecanismo de extensiones está pensado para incorporar a la plataforma paquetes que mejoran o añaden funcionalidad . La máquina virtual debe encontrar estos paquetes alojados en un archivo JAR localizado en la misma carpeta en que se encuentre el JDK o JRE, de tal forma que pueda acceder a él directamente, sin necesidad de consultar el CLASSPATH . Es el mismo mecanismo que se usa para encontrar las clases estándar que forman parte del núcleo .

Una de las ventajas que tienen las extensiones, respecto a las aplicaciones Java habituales, es que su código es compartido por todas las clases de una misma máquina virtual . De esta forma, tan sólo se carga una copia del código para todas ellas, lo mismo que ocurre con las clases que forman parte de los paquetes estándar .

Algunas extensiones disponibles actualmente son Java Telephony, Java Speech o Java 3D . Éstas son llamadas extensiones estándar . Cualquiera puede, no obstante, desarrollar extensiones para la plataforma Java y, en teoría, convertirlas en extensiones estándar siempre que superen unas ciertas pruebas .

Java Foundation Classes

Prácticamente todas las herramientas de desarrollo actuales incorporan algún tipo de jerarquía de clases que supone un punto de partida para el proceso de desarrollo, evitando que el programador tenga que entenderse directamente con la plataforma . Acrónimos como MFC ( Microsoft Foundation Classes ) , OWL ( Object Windows Library ) o VCL ( Visual Component Library ) hacen referencia a complejos paquetes en los que se encuentran centenas de clases precodificadas, de tal forma que el programador tiene a su disposición objetos y componentes que puede usar en sus proyectos .

Las JFC ( Java Foundation Classes ) no son un elemento totalmente nuevo, aunque sí es cierto que por primera vez se ofrece una versión completa, concretamente la versión 1 . 1 . En esta jerarquía de clases encontramos multitud de componentes con interfaz, los conocidos Swing; clases para la generación de gráficos y gestión de imágenes, la llamada Java 2D API; mecanismos de accesibilidad y otros servicios para las aplicaciones, como sincronización de hilos de ejecución, comunicación entre clases facilitando operaciones de portapapeles y arrastrar y soltar, etc .

El código de las JFC es 100% Java, lo que significa que las aplicaciones que se desarrollen sobre ellas serán totalmente transportables entre máquinas y sistemas, siempre y cuando éstas cuenten con el entorno de ejecución de Java 2 ( JRE ) .

Componentes Swing

Una parte importante de las JFC corresponde a las clases asociadas a los componentes Swing . Se trata de componentes ligeros que vienen a sustituir a los tradicionales controles AWT, ofreciendo una mayor funcionalidad con una menor carga del sistema . El número de componentes disponibles asciende casi a cincuenta, desde las habituales etiquetas de texto o botones hasta los árboles, vistas de tabla o visores HTML .

Estos componentes son 100% Java y, además, forman parte del núcleo, lo cual garantiza una independencia muy alta . En teoría los componentes se mostrarán y funcionarán prácticamente igual en cualquier sistema, manteniendo una coherencia en empresas en el que coexisten diferentes plataformas como Windows, Unix o Mac .

Todos los componentes Swing implementan ciertas interfaces definidas en la API de accesibilidad . Esto les permite ser operados complemente desde teclado, sin necesidad de ratón, así como usar diversos dispositivos para personas con discapacidades, como lectores Braille, sistemas de reconocimiento de voz o lectores de pantalla .

Un punto muy destacable de Swing es que el aspecto y comportamiento de los componentes, lo que se conoce habitualmente como Look&Feel, no está predeterminado estáticamente . Existen clases que son las responsables de gestionar la interfaz de los controles, además, tienen la característica de poder intercambiarse durante la ejecución . Consecuentemente, una aplicación puede prepararse para adaptarse a la interfaz propia del sistema en que se ejecute o bien mantener una independencia total de ella . Incluso es posible permitir al usuario que seleccione el aspecto y comportamiento que desea, adaptando la interfaz durante la ejecución .

Java 2D API

La posibilidad de generar gráficos y tratar con imágenes cada vez tiene mayor peso a la hora de valorar la elección de un entorno, lenguaje o plataforma de desarrollo . Java contaba con un importante abanico de clases, pertenecientes al paquete conocido como AWT ( Abstract Window Toolkit ) , que permitían trabajar con las entidades de dibujo simples y, además, ofrecían algunas opciones para manipular imágenes .

Contenidos recomendados...

Comentar
Para comentar, es necesario iniciar sesión
Se muestran 0 comentarios
X

Uso de cookies

Esta web utiliza cookies técnicas, de personalización y análisis, propias y de terceros, para facilitarle la navegación de forma anónima y analizar estadísticas del uso de la web. Consideramos que si continúa navegando, acepta su uso. Obtener más información