PDA

Ver la versión completa : JAVA VIRTUAL MACHINE



Frs
19/08/2002, 11:39
Todo lo que necesitas saber sobre el motor del lenguaje que hace posible la internet de hoy.

Para introducirte un poco al tema la Máquina Virtual Java es un programa que interpreta el código Java y lo traduce al lenguaje del sistema. Esta máquina virtual es lo que hace que Java sea portable. Un vendedor, por ejemplo Microsoft o Sun, escriben una máquina virtual para su sistema operativo, haciendo que todo programa Java puede ejecutarse en esa máquina virtual.

Pero que es Java?

El lenguaje de programación Java se creó a mediados de los noventa, es el más reciente entre sus semejantes, y por eso se encuentra en fase de evolución, hasta el punto que todos los años sale una nueva versión. Creado como lenguaje exclusivamente para la red se ha convertido en un auténtico lenguaje de programación paragonable, desde el punto de vista de la funcionalidad, al famoso C++.

En cuanto salió Java fue acogido con gran entusiasmo por la comunidad mundial de los diseñadores de programas y de los proveedores de servicios internet. Esto porque Java permitía a los usuarios de Internet utilizar aplicaciones seguras e independientes de la plataforma, y que se pueden encontrar en cualquier punto de la red.

Java nació pues como lenguaje para la red, para sostener el Hyper Text Markup Language (HTML), que no es un lenguaje de programación propiamente dicho, y para darle la seguridad que el HTML no tiene. Desde que apareció Java en la red se ha empezado a hablar de números de tarjetas de crédito y de informaciones seguras, lo cual ha entusiasmado a las mayores sociedades mundiales que han transformado la vieja Internet, prerrogativa de las universidades y centros de investigación, en el medio actual de comunicación abierto a todos.

Java y la mayor parte de los otros lenguajes pueden compararse sólo desde el punto de vista funcional; y esto porque son fundamentalmente diferentes, ya que Java recopila las fuentes de sus programas en un código llamado Bytecode distinto del aparato en el que se ha compilado, mientras que lenguajes como C++ recopilan las fuentes de los programas en un código que es a su vez código del aparato (como aparato se entiende ordenador + sistema operativo) en el que se ha realizado. Por lo tanto, para poner en marcha un programa Java es necesario contar con un instrumento llamado Java Virtual Machine que interpreta el bytcode generado por el recopilador Java y lo ejecuta en el aparato en el que se ha instalado.

Si no soy yo, quien?

Frs
19/08/2002, 11:39
Gracias al Java Virtual, Java es independiente de la plataforma, es decir, que el programa recopilado Java está unido a la JVM (Virtual Machine) y no al sistema operativo, por eso será posible poner en marcha el mismo programa Java, recopilado una sola vez en un aparato cualquiera con un recopilador Java versión X, en una plataforma Windows y en una plataforma Linux, sin embargo para hacer eso se necesita que Windows y Linux instalen un aparato Java Virtual que apoye la versión X de Java.

Las dos JVM, instaladas en las dos plataformas distintas, son el mismo programa recopilado una vez por Windows y otra vez por Linux, como ocurría con los programas escritos en lenguajes como el C/C++.

Un aparato Java Virtual está instalado también en los distintos Browser (como Netscape y Explorer) para poder poner en marcha los programas Java que se encuentran en la red, los apliques. Pero esto, debido a que Java sigue evolucionando, provoca obvios problemas de compatibilidad, siempre ocurre que el Browser más moderno contiene una versión precedente de Java con respecto a la última versión de Sun Microsystem. Además, hay que tener en cuenta que no todos los usuarios de Internet navegan usando la última versión de Netscape o de Explorer. Por eso, cuando queremos crear un aplique e insertarlo en un documento HTML, hay que tener en cuenta estos problemas e intentar diseñar un programa que sea compatible con la mayor parte de los JVM implementados en los distintos browser.

Otro problema al que hay que enfrentarse es el de la elección del recopilador Java a utilizar, ya que existen varios ambientes integrados para editar, recopilar, depurar y ejecutar programas Java, como los de la Broland, de la Microsoft, de la Symantec. Todos estos ambientes ofrecen unas herramientas de desarrollo excelentes, como editores gráficos de ventanas, depuradores muy interesantes, pero presentan dos problemas, el primero que valen mucho dinero, el segundo es el de la compatibilidad, ya que muy a menudo se encuentran tras la relase de la Sun y, además, añaden unas clases que los JVM en los browser no tienen.

Si no soy yo, quien?

Frs
19/08/2002, 11:40
Aconsejo usar el Java Development Kit de Sun Microsystem, que comprende tanto el compilador como el aparato Java Virtual Machine, para poner en marcha los programas que recopilamos, además son freeware (no cuestan nada) y se pueden bajar de la red y los browser se ajustan a esta versión de Java.

Un último problema que tiene Java es la lentitud, ya que, como ya hemos señalado, el Java tiene que ser interpretado, así las instrucciones Java antes de ser ejecutadas por el aparato tienen que ser interpretadas por la JVM; es decir, que para ejecutar cada instrucción el ordenador realizará un número de instrucciones que es el doble de las instrucciones que realizaría si la misma instrucción estuviera escrita en C. Por lo tanto, necesitaréis ordenadores rápidos para ejecutar cómodamente los programas Java, y de esto os habréis percatado seguramente navegando por la red. También la memoria es importante, se compila y se ejecuta también sólo con 32Mb de RAM, pero para hacer las cosas con rapidez son necesarios al menos 64, tened en cuenta que el último ambiente integrado de la Borland, el Jbuilder 3, tiene como requisito mínimo de RAM 96 Megabyte.

Para acabar vuelvo al Java Development Kit de la Sun Microsystem, con éste es posible producir todo el software que se quiera sin tener que pagar los derechos de uso del producto, como sucede con el Borland Jbuilder, el Symantec Cafe, y el Microsoft Visual Java. Os aconsejo que leais la licencia de uso que encontraréis al bajar el JDK antes de empezar a producir el software.

La principal diferencia entre Java y los demás lenguajes de programación por objetos es que con estos últimos es posible programar por objetos, mientras que con Java se tiene absolutamente que programar por objetos. Por eso es necesario explicar qué quiere decir programar por objetos. En concreto la programación se desarrolla de la misma forma que los lenguajes "normales", pero tanto los datos como las funciones que los trabajan se organizan en estructuras llamadas clases. Las clases son prototipos de objetos, es decir, son estructuras abstractas que se pueden instalar y, por eso, crear un objeto (pero también más de uno).

Matias Martinez


Si no soy yo, quien?