Ya hace un buen tiempo que la nueva revolución de algo llamado JAVA está dando que hablar en el ambiente de los desarrolladores. Y no es para menos, esta nueva propuesta como herramienta de desarrollo de aplicaciones posee múltiples posibilidades que la hacen perfilarse como "el lenguaje de programación del milenio".

Pero seamos sinceros, para aquellos que aún no se han metido en el tema, hablar de JAVA produce las siguientes asociaciones: "es un lenguaje difícil, muy parecido a C++", "tiene una ejecución muy lenta porque es interpretado", "sirve para programar en Internet", "es muy complejo y no vale la pena".

Que el lector me observe si lo que escribo escapa de la realidad, pero la mentablemente aquello de "hazte fama y échate a dormir" injustamente se cumple con este lenguaje. Y digo injustamente porque creo que deberíamos darnos una oportunidad de que nos muestren cómo es JAVA en realidad, cómo funciona y qué cosas me permite hacer, para luego juzgarlo con más propiedad. Desafortunadamente, todos sabemos que los rumores en el área de la informática suelen ser crueles por de más algunas veces.

En fin, sea como fuere lo primero que debemos entender es qué es exactamente a lo que se le llama JAVA y qué partes lo componen.

¿Qué es Java?

Si bien JAVA hoy por hoy es considerado una tecnología, en su concepto básico podría definirse como un lenguaje de programación orientado a objetos multiplataforma. Como tal se utiliza para codificar aplicaciones de diversos tipos entre las que se en cuentran los denominados applets, servlets, componentes JAVA applets y todo aquel programa que se desee realizar para cualquier plataforma (tenga o no que ver con Internet). Evidentemente que la idea de asociar JAVA al Web surge de que el lenguaje fue pensado para programar en varias plataformas conectadas en Internet, pero eso no quita que actualmente su potencia y portabilidad lo hagan ideal para ser utilizado en otro tipo de aplicaciones. Para entender el mundo de JAVA debernos primero comprender algunos conceptos básicos de esta tecnología: el lenguaje de programación JAVA, la máquina virtual de JAVA y la plataforma JAVA.

El lenguaje de programación JAVA

Este es un lenguaje orientado a objetos con características de sintaxis muy similares a C, de ahí la fuerte asociación. Sin embargo, es importante observar que los diseñadores del lenguaje pusieron especial énfasis en la creación de uno que fuera potente pero que al mismo tiempo evitara la complejidad de otros" también orientados a objetos, tales como C++. El resultado fue un lenguaje simple que permite a los programadores generar un código limpio y sin errores.

El lenguaje en sí tiene una sintaxis por demás similar a la de C++, pero afortunadamente evita que el programador deba preocuparse por todos los detalles de control que debe tener en cuenta trabajando en C++ (tales como la creación y destrucción los objetos en xnemoria).

La máquina virtual de JAVA

La denorninada rnaquina virtual o el intérprete de JAVA debe entenderse como una pieza crucial en toda instalación de JAVA. La misma, se entiende como un intérprete que se encarga de leer y traducir a código máquina las sentencias JAVA.

Desde el comienzo, debemos tener claro que los programas de JAVA son cien por ciento portables y cuando hablamos de portabilidad no nos referimos a que se puede compilar el código sobre otra plataforma y funciona. Sino que una vez que hemos "compilado", el código, ese mismo producto corre sobre cualquier plataforma. El lector habrá deducido que la anterior afirmación no es plausible así porque sí. Y tiene razón, pero ahí es donde entra en juego la JAVA Virtual Machine (Máquina Virtual de JAVA).

Volvamos al comienzo entonces, JAVA es portable pero sólo para aquellas plataformas en donde se halle disponible un intérprete JAVA (y que de hecho no son pocas). Hablamos de que el intérprete de JAVA, la llamada máquina virtual (de aquí en adelante VM) existe actualmente pará varias plataformas (Windows9x/2000/, NT, Solaris, Aix, Linux, Apple, etc.) Asi mismo, la VM no sólo se halla irnplementada para estaciones de trabajo sino que tarmbien existen versiones reducidas para algunos dispositivos de menor porte tales como los actuales "handheld" y "palms" (con Windows CE y PalmOS).

Una cosa a considerar para derribar uno de los mitos de los que hablábamos al comienzo, es que si bien JAVA es un lenguaje interpretado no por ello es tan lento. La gente de Sun Microsystems (creadores de JAVA), aplicaron una nueva tecnología llamada JIT Compilation (Compilación en el momento) mediante la cual se aceleran notoriamente los tiempos de ejecución.Para entender esto debemos antes comprender cómo es la secuencia de creación de una aplicación JAVA. Digamos que una vez que creamos el código en lenguaje JAVA, debemos compilarlo para generar lo que se denomina el Bytecode. El Bytecode es un conjunto de instrucciones muy parecidas al código de máquina (código binario), no específicas para ningún procesador en particular. Una vez logrado esto, el Bytecode queda como un modulo portable, listo para ser interpretado por cualquier plataforma que posea una VM, la cual traducira en cada caso el codigo del Bytecode, al codigo de maquina propietario

ESQUEMA DE COMPILACION DE JAVA

La plataforma JAVA

La dennominada plataforma JAVA es tan importante corno el lenguaje de programación y la VM. Todos los pro

gramas escritosen JAVA cuentan con un conjunto de 'clases predefinidas que componen la llamada plataforma JAVA. Evidentemente que un lenguaje del porte de JAVA no sería útil (o eventualmente sería demasiado "denso"), si se tuviese que definir todo desde cero. Por ello es que cuando nos interesamos en 2 el mundo de JAVA nos encontramos con un lenguaje simple, poderoso y muy completo. Las clases de JAVA por su parte, están organiza das en grupos funcionales relaciona dos denominados paquetes (packages). La plataforma JAVA define paque tes para tareas relacionadas con en trada y salida de datos, comunicación en redes, manejo de gráficos, creación de interfaces de usuarios, esquemas de seguridad, etc.

Finalmente, es importante comprender por qué se le denomina plataforma a ese conjunto de funcionalidades. De hecho, el punto es que para un programador una plataforma se define por las APIs a las que él pue da acceder para comunicarse con el sistema operativo. Sin embargo, es claro que esas APIs van a diferir si el programador trabaja sobre Windows o sobre UNIX. Pues bien, pensemos en que un programador JAVA tiene a su disposición un set de APIs para resolver todos sus problemas de implernentación, pero sobre una plataforma portable. Así, a modo de ejemplo, si accede a APIs que le resuelven el tema de la interfaz gráfica, la misma funcionará igual sobre Windows, Macintosh o XWindows.

Este último punto, es uno de los pilares por los cuales Mierosoft teme tanto a JAVA.

Con este nuevo concepto un programador es capaz de reali,zar una aplicación completa independizándose por completo del sistema operativo.

Las virtudes de JAVA

Hasta ahora hemos visto qué es JAVA y qué componentes lo forman. Pero veamos ahora qué lo hace tan poderoso.

Escriba una vez y ejecútelo en cualquier parte. Este es el enunciado pilar de la idea de JAVA. De hecho JAVA surgió siendo una idea de conectar múltiples dispositivos entre sí. Nos referimos a un sistema en común para hacer dialogar un PC con un teléfono celular o con un TV. El concepto de escriba una vez y ejecútelo en cualquier parte va un poco por eso. La idea es que el desarrollador escribe una vez la aplicación y la misma puede ser ejecutada sobre cualquier plataforma que tenga un intérprete JAVA.

Una clase es un módulo de código JAVA que define una estructura de datos con métodos (procedimientos-funciones) y atributos asociados, que operan sobre los datos.

De hecho, el principal sitio web de JAVA (al cual invito al lector a que lo visite: http://java.sun.com), está repleto de links hacia otros sitios del tema y cuenta con una información muy amplia sobre la herramienta, novedades y mucho código disponible.

Seguridad

Otro de los pilares de JAVA es el tema de la seguridad. El lenguaje y la plataforma fueron diseñados desde el comienzo con un gran enfoque en la seguridad de la aplicación, Cuando nos referimos a seguridad, hablamos de que no sólo es seguro para la aplicación en sí, sino para quien ejecuta dicha aplicación.

La plataforma JAVA permite a los usuarios descargar código JAVA en sus entornos y ejecutarlo, sabiendo que el mismo no podrá hacer daño o infectar el ambiente receptor. Esta característica hace de por sí único a JAVA. Y por supuesto que respecto a la seguridad no nos referimos solamente a los applets que se ejecutan dentro de navegadores. En la nueva versión de la plataforma de JAVA (2), los conceptos de seguridad fueron llevados un paso más allá, limitando a las aplicaciones JAVA, los componentes JAVA, applets y servlets la capacidad de acceder a zonas no permitidas o no solicitadas.

Programación enfocada en la red

Para la gente de Sun Microsystems la idea desde el comienzo fue la interconexión de todos los elementos. De ahí que JAVA haya surgido como una idea llena de facilidades para intercambiar componentes en un ambiente de red. Por tanto, el programador JAVA que se inicia se encuentra con una gran cantidad de herramientas para manejar fácilmente elementos dentro de una red, creación de aplicaciones cliente-servidor, diseño de arquitecturas multiusuario, uso del concepto de multihebras, etc.

Programas extensibles y dinamicos.

JAVA en ambas cosas: dinamico y extensible. Con ello queremos decir que JAVA en su estructura de diseño de programa modular con clases, maneja un concepto de utilización de recursos dinámico y expansible.

cesitando a medida que las va necesitando y no antes. Asimismo, este crecimiento generado por la utiliza

JAVA sólo carga las clases que va necesitando a medida que las va necesitando y no antes. Asimismo, este crecimiento generado por la utilización dinámica de las clases, se da también a través de la carga de componentes en la red. Sin dudas el lector comprenderá ahora a qué nos referimos cuando decimos que JAVA es dinámico.

lnternacionalismo

Es difícil visualizar a qué nos referimos con un JAVA internacional. Pero de hecho así es. JAVA fue concebido para ser utilizado en todo el mundo y por tanto considera un juego de caracteres de 16 bits (Unicode) y no de 8 bits (el cual sólo representaría caracteres occidentales).

Performance

Si bien la velocidad de ejecución fue un problema en el pasado, no lo es actualmente ya que la VM ha sido drásticamente acelerada y optimizada como para lograr una ejecución más que aceptable. Obviamente la velocidad no puede compararse con C o C++, pero también es cierto que tampoco es tan lento como para desecharlo.

De hecho, tecnologías como la descrita anteriormente (JIT), han hecho, mucho al respecto. Por otra parte, no toda la plataforma de JAVA se implementa a través de los bytecodes. En pos de la eficiencia, porciones de la plataforma de JAVA tales como aquellos métodos relacionados con el manejo de cadenas de caracteres, son implementados directamente utilizando código de máquina nativo.

Conclusión

Creo que no hace falta otra taza de JAVA caliente para el alma, luego de esta extensa exposición. Pero lo que sí se espera es quitar los fantasmas que rodean a un lenguaje tan poderoso, actual y simple como es JAVA. Lo que de hecho se espera es que el lector interesado, revea su posición frente a esta prometedora tecnología que de a poco nos va conectando.