|
|
|
|
|
Autor: Angel "Java" Lopez
Comentarios a:
ajlopez@ajlopez.com
Si Uds. no han estado el último año encerrados en un ropero, habrán navegado por la Internet y la WWW, y habrán escuchado la palabra Java. Para algunos, este lenguaje es un perfecto desconocido, o apenas el nombre de un tipo de café. Esta página pretende introducirlos en un fascinante y nuevo territorio.
Es un nuevo lenguaje de programación, orientado a objetos, desarrollado en Sun Microsystems. Está transformando a la World Wide Web, debido a la amplia aceptación que ha tenido. Java permite implementar páginas de Web mucho más dinámicas, con características que antes era dif¡cil obtener en un sitio de la Web. Al entrar en una página de Web, ahora podemos encontrarnos no sólo con texto y multimedia, sino con alguna aplicación Java, que realiza desde una animación gráficas, hasta un juego, la consulta a una base de datos, o la toma de un pedido de compras en una tienda virtual.
La principal característica que ha contribuido al éxito de Java es su capacidad de ejecutarse en múltiples plataformas, como Unix, Windows y OS/2. Está pensado desde el inicio para ser totalmente portable, y esto le abre las puertas a todas las máquinas clientes de la Internet, y a otros aparatos y computadoras.
Java es un derivado del lenguaje C++, con mejor manejo de objetos y de memoria. Al contrario de C++, es un lenguaje totalmente orientado a objetos, y como aquél, viene provisto de una serie de librerías que ayudan a la construcción de un programa. Un programa Java se compila, y el resultado es una serie de "bytescodes" o instrucciones, a ejecutarse dentro de una máquina virtual Java. En este sentido, recuerda la estrategia de interpretación del lenguaje Smalltalk. Lo bueno de esta implementaci¢n, es que lo hace independiente de la máquina: basta que haya alguna simulación de esa máquina virtual, para que pueda ejecutarse programas Java. Es decir, Java es un lenguaje de programaci¢n, más una máquina virtual Java (especificada por Sun e implementada en varios entornos y sistemas operativos).
La Web consiste en páginas con contenido de texto, gráfico y enlaces con otras páginas. La forma de comunicarse de nuestra máquina con los distintos sitios (el protocolo HTTP), es lo bastante flexible para permitir la adición de nuevas capacidades, que continuamente nos asombran. Las aplicaciones Java, conocidas como applets", son uno de esos nuevos objetos soportados en la WWW. Un programa "browser" que soporte este lenguaje (como las últimas versiones del Netscape Navigator y el Microsoft Internet Explorer), al encontrarse con una página que contiene una aplicación Java, la recibe en forma de programa compilado, y la comienza a ejecutar en su máquina virtual Java.
Las primeras "applets" han explotado las capacidades gráficas (como dibujo en 3 dimensiones) y multimedia que posee el lenguaje. No es raro encontrar juegos implementados en Java, desde juegos de casino hasta Tetris y damas, o un programa que nos presenta un piano. Hay aplicaciones educativas, como modelos moleculares y simulaciones de física. Pero también hay aplicaciones como las "teleconferencias" y "foros" basados en Java, que permiten al "webmaster" (el especialista que arma y mantiene un sitio en la Web) extender las capacidades del HTML (el lenguaje de definición de páginas de WWW).
Un tema donde hay una gran efervescencia de desarrollo, es la implemetación de consulta y acceso a bases de datos a través de Java. Esto le permitiría al usuario actualizar, por ejemplo, los datos de los clientes guardados en un sitio de la red de su empresa. Esta red puede estar integrada a Internet, o ser una red interna o intranet. El desarrollo de aplicaciones complejas intranet encuentra en Java a un aliado flexible y multiplataforma.
Otro ambiente donde el Java está siendo muy apreciado, es el de los artefactos electrodomésticos o electrónicos. Por ejemplo, en la actualidad hay teléfonos celulares, con una pequeña pantalla manejada por Java, que cubre las funciones de pager, lector de correo electrónico, y hasta de navegación por Internet. Vemos que la ubicuidad del Java le permite insertarse en distintos medios.
Alrededor de 1991, Sun necesitaba un lenguaje de programación, para crear productos orientados al consumidor. La búsqueda se orientó a un lenguaje con las facilidades del C++, pero sin la complejidad y la tendencia a errores de este lenguaje. James Gosling, de esa empresa, decidió implementar entonces una variante del C++, y así nació el Java.
La sintaxis es similar al lenguaje C/C++. Gosling lo pensó así, para que los nuevos programados Java se encontraran con algo ya conocido. Tiene clases, como C++, con herencia simple, llevadas al extremo: todo en el lenguaje es una clase. Tiene "packages" (paquetes), tipo Modula, que son conjuntos de funciones ya implementadas sobre las que pueden basarse los nuevos programas Java. Posee concurrencia, soportando "multithreathing" (múltiples hilos de ejecución) y sincronizaci¢n. Tiene manejo de excepciones, que se ha convertido en la característica más criticada del lenguaje. Implementa un manejo automático de memoria, como Lisp y Smalltalk, que libera al programador de la necesidad de liberar objetos ya no usados, un tema que siempre ha sido fuente de errrores. No posee punteros a memoria, otra gran fuente de errores en otros lenguajes como el C/C++. Maneja "strings" (sartas de caracteres) de longitud variable, como el Basic. Los arreglos tienen control de índices, como en Pascal.
Actualmente se está trabajando en la implementación de llamadas remotas a otras aplicaciones Java, en la creación de objetos distribuidos (JOE, "Java Objects Everywhere"), y en el acceso a base de datos (JDBC, "Java Database Kit").
La máquina virtual Java Hay un compilador Java que traduce el código fuente, en un archivo de bytescodes (pseudo-instrucciones). El lenguaje es independiente de la plataforma, necesitando solamente un intérprete en cada plataforma, que debe cumplir las especificaciones de la Máquina Virtual Java. Actualmente esa máquina se está trasladando a todas las principales plataformas.
El problema que presenta la interpretaci¢n, es la velocidad. Sin embargo, Sun est trabajando en nuevos algoritmos, como traducción de los bytescodes en código de máquina en forma "just-in-time" (cuando lo necesita), y avanzadas formas de "garbage-collection" (recuperación del espacio liberado por los objetos no usados). Según Sun, el código interpretado Java corre tan rápidamente como código C compilado. Esa es un afirmación optimista, pero realista: ada bytecode a interpretar puede encapsular miles de instrucciones de máquina.
Es de destacar que la máquina Java controla la autenticidad del código a interpretar, para no permitir la violación del sistema huésped. Si el programa es obtenido de una página de Web, no puede acceder al disco del usuario: parece difícil entonces encontrarse con algún virus Java.
La Java API ("Application Program Interface", interface de programas de aplicación) es una librería de clases que simplifican la vida del programador de Java. Posee soporte de alto nivel de la mayoría de los protocolos de Internet, como HTTP, NNTP, FTP. También permite la creaci¢n de protocolos propios, gracias a funciones de bajo nivel. Otra facilidad que posee es el manejo de una GUI normalizada, con controles como cajas de texto, listas, y botones. Hay un paquete gráfico, con soporte de 3 dimensiones, y otro de multimedia.
Como los lenguajes C/C++ y Smalltalk, Java puede ser un lenguaje relativamente simple, pero con una gran y compleja librería de clases. Esta extensa API debe ser el mayor obstáculo a sortear en el aprendizaje de Java.
El "Java Development Kit" o JDK, es un conjunto de herramientas liberadas por Sun Microsystem, en forma de Beta en noviembre de 1995. Actualmente, está en su versión final. En este kit tenemos un compilador Java, un "debugger" Java, las clases de la API, y herramientas para ejecutar y documentar programas Java. Puede conseguirse en el sitio de Sun (mencionado más abajo) o incluido en otras herramientas. Está disponible para plataformas Windows 95 y NT, y Solaris Sparc.
Ahora, Sun ha lanzado el Java Workshop, un entorno integrado de desarrollo, gráfico, en su mayor parte escrito en Java. Eso le asegura su portabilidad.
Esas herramientas son primitivas, comparadas con otras más evolucionadas. Esto ha llevado a la aparición de adicionales, como el soporte de Java en el Borland C++ 5.0, el Symante Café, el Mojo Visual Depelopment, y el Visual J++ de Microsoft. En general, estos sistemas tienen una interfaz gráfica, al estilo de los modernos compiladores, que permiten una programación más dinámica. Muchos terminan utilizando el JDK para compilar y ejecutar.
Es muy interesante la implementación del Visual J++ de Microsoft.
Debido al auge del Java, hay cientos de lugares a visitar que tienen información o "applets" a ejecutar. Pero los principales, con enlaces a otros más especializados, son:
http://www.sun.com: El lugar de Sun Microsystems. Ahí podrá encontrar novedades sobre Java y otros desarrollos de Sun.
http://www.javasoft.com: La casa del Java. Es un sitio soportado por una subsidiaria de Sun, que se dedica al software de esa empresa. Podrá conocer el lenguaje, bajarse el JDK, incluso una versión con todos los códigos fuentes de su implementación en Windows o Solaris, e información interminable sobre las nuevas extensiones a la API.
http://www.gamelan.com: Es el mayor lugar de colecciones de información y "applets" Java. Contiene miles de enlaces a otros sitios y páginas relacionadas con el lenguaje. Es la Tierra Prometida para los que nos gusta Java.
http://direct.gamelan.com: El nuevo sitio de la gente de Gamelan, un mercado de aplicaciones Java e información relacionada.
http://www.javaworld.com: Una revista virtual dedicada a Java. Pueden visitarla usuarios interesados en la tecnología Java, y programadores.
http://www.jade.org: Es el sitio de la Java Developers Organization, que nuclea a los programadores Java del planeta.
http://www.microsoft.com: Debido al respaldo que le ha dado a Java la empresa de Bill Gates, es interesante visitar este sitio, donde encontrarán información sobre tecnologías Java en futuras versiones de Windows, COM ("Component Object Model") y Java, el nuevo ambiente de desarrollo Visual J++, y la aparición del Java SDK.
http://home.netscape.com: Netscape ha sido la empresa que primero a impulsado a Java en la Internet. Junto con Sun, desarrolló una variante simplifcada, denominada JavaScript (que tiene, a decir verdad, poco en común con el Java puro). Encontrará información sobre este tema, y su aplicación en intranets, en este sitio.
El uso de chips Java, la aparición del sistema operativo JavaOS (definido por Sun), objetos distribuidos Java (con el JOE, Java Objects Everywhere), la integración de Java al esquema abierto CORBA (Component Object Request Broker Architecture) y al COM (Component Object Model) de Microsoft, eso y mucho más, augura un futuro agitado a esta nueva tecnología. Espero poder seguir poniendo aquí más información sobre Java, como ejemplos de programas, y nuevas noticias.
Si tiene comentarios, sugerencias o alguna pregunta sobre Java escriba a webmaster@ajlopez.com
Fecha de Redacción: Fines de 1996
Fecha de Ultima Actualización: 30 de Noviembre de 1997