La tecnología Java

Desde ya hace un tiempo venimos escuchado en todas partes sobre la tecnología Java, pero ¿Qué es exactamente esta tecnología? Empecemos conociendo que está compuesta por 2 partes:

- El lenguaje de programación, y
- La plataforma

El lenguaje de programación Java

Podemos empezar diciendo que el lenguaje Java es de alto nivel (*) y sus características más importantes son:

  • Lenguaje orientado a objetos.
  • Java es un lenguaje sencillo.
  • Independiente de plataforma
  • Brinda un gran nivel de seguridad
  • Capacidad multihilo
  • Gran rendimiento
  • Creación de aplicaciones distribuidas
  • Su robustez o lo integrado que tiene el protocolo TCP/IP lo que lo hace un lenguaje ideal para Internet.

Tradicionalmente se han dividido los lenguajes en compilados e interpretados. Los primeros necesitan ser traducidos por un programa llamado compilador al lenguaje máquina, que es el que entiende el ordenador. Como ejemplo de estos lenguajes podríamos citar a C, C++, Visual Basic, Clipper,etc. Los interpretados, en cambio, son traducidos mientras se ejecutan, por ejemplo HTML, WML o XML, por lo cual no necesitan ser compilados.

Así pues la diferencia entre estos lenguajes radica en la manera de ejecutarlos. Mientras que los compilados sólo se compilan una vez y lo hacen pasando todo el programa a código máquina (si da un error aunque sea en la ultima línea no podríamos ejecutar nada de nada), en el momento que lo hemos compilado correctamente se genera un archivo .exe que se puede ejecutar tantas veces como queramos sin tener que volver a compilar. Los interpretados en cambio, cada vez que los queramos ejecutar tendremos que interpretarlos línea a línea, es más lento, pero puede ocurrir un error en la ultima línea y a diferencia de los compilados, el programa se ejecuta justo hasta la línea que produce el error.

Java está diseñado para que un programa escrito en este lenguaje sea ejecutado independientemente de la plataforma (hardware, software y sistema operativo) en la que se esté actuando. Esta portabilidad se consigue haciendo de Java un lenguaje medio interpretado medio compilado. ¿Cómo se come esto? Pues se coge el código fuente, se compila a un lenguaje intermedio cercano al lenguaje máquina pero independiente del ordenador y el sistema operativo en que se ejecuta (llamado en el mundo Java bytecodes).

Finalmente, se interpreta ese lenguaje intermedio por medio de un programa denominado máquina virtual de Java (JVM), que sí depende de la plataforma.

Los java bytecodes permiten el ya conocido “write once, run anywhere” (compila una sola vez y ejecútalo donde quieras). Podemos compilar nuestros programas a bytecodes en cualquier plataforma que tenga el compilador Java. Los bytecodes luego pueden ejecutarse en cualquier implementación de la máquina virtual de Java (JVM). Esto significa que mientras el ordenador tenga un JVM, el mismo programa escrito en Java puede ejecutarse en Windows, Solaris, iMac, Linux, etc.

La plataforma Java

Con plataforma nos referimos al ambiente de hardware y software en donde el programa se ejecuta, por ejemplo, plataformas como Linux, Solaris, Windows 2003 y MacOS. En casi todos los casos las plataformas son descritas como la combinación del sistema operativo y el hardware. La plataforma Java se diferencia de estas plataformas, es que es una plataforma sólo de software y se ejecuta sobre las otras plataformas de hardware.

La plataforma Java tiene 2 componentes:

  • La máquina virtual de Java (JVM)
  • El Java API (Application Programming Interface)

Ya hemos visto algo de la máquina virtual de Java (JVM); es la base de la plataforma Java y es llevada a diferentes plataformas de hardware.

El Java API es una gran colección de componentes de software que proporcionan muchas utilidades para el programador, por ejemplo, los API’s para las interfases gráficas. Los API’s de Java están agrupados en librerías de ciertas Clases e interfaces, estas librerías son conocidas como paquetes.

El siguiente gráfico describe un programa que se está ejecutando sobre la plataforma Java. Como vemos, el Java API y la máquina virtual aíslan al programa del hardware.

(*) Lenguajes de alto nivel = son aquellos en los que las instrucciones o sentencias son escritas con palabras similares a las de los lenguajes humanos (mayormente en Inglés). Esto facilita la escritura y comprensión del código al programador.



Nombre:

Email:

Comentario: