1. Java en los Browsers
2. Primeras aplicaciones
3. Primeras Applets
4. Conociendo al lenguaje Java
JAVA EN LOS BROWSERS
El primer lugar y el mas frecuente, donde encontramos al lenguaje Java,
es en los exploradores o navegadores de Internet. Veamos
cómo llega hasta ahí.
La World Wide Web:
Llamada así por sus siglas WWW, es la aplicación que ha
popularizado a Internet, y ha sido la causante de la explosión de la red
de redes.
Hablando sencillamente, la WWW basa su existencia en dos aplicaciones: los
servidores de Web y los clientes. Los primeros son programas
dedicados, instalados en las maquinas nodos de la red, que atienden a
todos los pedidos de los clientes. Estos solicitan archivos, recursos de
la Web , en general, archivos HTML y graficos.
Los archivos HTML son archivos de texto, que contienen una descripción
de lo que vemos como
pagina en nuestro browser. La sigla HTML significa Hypertext Markup
Languaje (lenguaje de marcación de hipertexto), y es el lenguaje que
describe las paginas Web.
En esas paginas se colocan textos, graficos y
otros recursos. Es trabajo del
cliente, nuestro browser, interpretar esa pagina, mostrarla en pantalla,
y reclamar todo lo que se necesite para armarla, como los graficos y archivos de sonido
que la pueden acompañar.
Java en la Web
Los programas Java son, al fin, otro recurso mas, como pueden serlo una pagina HTML o un
archivo grafico. Al igual que estos últimosviajan
desde el servidor a la maquina cliente, y se ejecutan en ésta.
Vera, cuando arme alguna applet, que existe una construcción, la
marca HTML , que especifica un determinado lugar en una pagina Web, para
que el browser posicione y ejecute una aplicación Java. Los archivos
Java que viajan son de un tipo: se trata de archivos
con extensión .class y contienen las instrucciones Java ya compiladas,
no viajan en código fuente. Una applet se compone, como mínimo,
de un archivo .class, pero puede requerir mas archivos .class (con
mas código para ejecutar), que el browser recupera, o archivos
graficos, de sonido u otros, que la propia applet se encarga de
recuperar.
Maquinas Virtuales
Se ha mencionado que el lenguaje Java se compila, no pensando en una plataforma
o procesador en particular, sino produciendo código (que se denomina
bytecodes), destinado a ser interpretado por la llamada maquina virtual
Java. Esta maquina no es una única, sino que
hay una por cada plataforma y, en realidad, cada browser que implementa Java
tiene la suya. Así, el Microsoft Explorer
usara su maquina en Windows, mientras que el Netscape Navigator
usara la suya, que variara de Windows a UNIX.
Pero todas tienen la misma funcionalidad (o debería
esperarse eso). Tanto el usuario como los programadores no
deberíamos preocuparnos por las distintas implementaciones. Sin embargo,
se escuchan quejas de los desarrolladores, originadas en la
pequeñasdiferencias que se encuentran tanto entre una
implementación y otra, como en el aspecto de la interface
grafica.
Ademas de la maquina virtual, cada browser instala una serie de
clases, ya listas para usar, que Java espera tener
disponibles en cualquier plataforma. Esas clases tienen una
funcionalidad definida, que no debería sufrir modificaciones.
Netscape y Microsoft:
La empresa Netscape, creadora del Netscape Navigator, soporta Java desde la
versión 2 de su browser. Microsoft no se ha quedado
atras y soporta Java desde la versión 2.0 de su browser.
Microsoft no se ha quedado atras (pues no le convenía, dado la
mayoría de las paginas contiene - aunque sea - un
poquito de Java) y soporta Java desde la versión 3.0 de su Internet
Explorer. Ambos browsers instalan y usan su propia
maquina virtual Java. No hay diferencias apreciables en las
prestaciones de estos dos browsers, respecto de Java.
Hay que hacer algunas aclaraciones: en general, los browsers, de cualquier origen, soportan Java en ambientes que permiten la
multitarea y los llamados múltiples hilos de ejecución
(multihttrading).
Seguridad
Debido a la naturaleza de Internet, traer programas desde un lugar lejano y no
controlado a nuestra computadora, para ejecutarlo, puede ser riesgoso.
Con respecto a las applets Java debemos quedarnos tranquilos: Sun y los
constructores de browsers han implementado una política de seguridad,
que impide a una applet, porejemplo, leer o escribir en nuestro disco, o
interferir con otras aplicaciones en ejecución. Es tan grande la
seguridad que, como
programadores, nos puede llegar a molestar: en una applet nunca podremos grabar
un archivo local, con datos transitorios o de configuración.
Nuevos browsers
Entre Netscape (en múltiples plataformas) y Microsoft (en plataformas
Windows) acaparan el mercado de los browsers.
Java sin browsers
Pero no todo es Internet en Java. Este es un lenguaje
de uso general, que sólo incidentalmente cobró popularidad en
Internet. Podemos desarrollar aplicaciones Java que se
ejecuten en nuestra maquina, sin necesidad de estar conectados a la red,
y sin el auxilio de browsers. Mientras los programas
Java para Internet y paginas HTML se llaman applets, los que pueden
ejecutarse fuera de la red se llaman genéricamente aplicaciones.
PRIMERAS APLICACIONES
Creando el programa:
/*
Primera aplicación Java
Compilar con:
javac HolaMundo.java (y se creara un archivo llamado HolaMundo.class)
Ejecutar con:
java HolaMundo
*/
public class HolaMundo
}
Compilando el programa:
javac HolaMundo.java
Ejecutando el programa:
java HolaMundo
Analizando el Código:
Nuestra primera clase:
/* y */: es para hacer comentarios. También sepueden usar
dos barras //.
Luego de los comentarios, nos encontramos con la declaración
public class HolaMundo
public static void main(String[] args)
}
Cuenta.html
Compilamos con: javac Cuenta.java = Cuenta.class
Invocamos con: appletviewer Cuenta.html
O con: start Cuenta.html (se ejecuta desde el navegador)Estudiando la applet
Cuenta:
Esta applet es muy similar a la applet HolaMundo, pero con una pequeña
vuelta de tuerca.
Código
int veces=0;
Se declara una variable (veces) con el valor 0.
public void paint(Graphics g) {
veces=veces+1;
Cada vez que se ejecuta la línea: public void paint(Graphics g) { se le
asigna (por el signo =) a la variable veces su valor actual (veces) mas
1.
g.drawString('Este es el paint nro. '+veces );
es la concatenación (unión) de un texto ('Este es el paint
nro.') y la variable entera (int) veces. La cual se incrementa cada vez
que se ejecuta el método paint (por la línea: public void paint(Graphics g) {).
La variable veces se declara (int veces=0) y se inicializa a 0 (int veces=0). Luego, cada vez que se ejecuta el método paint, se
incrementa, y se muestra en la zona de la applet. Si minimizamos la
ventana de la applet, o la tapamos parcial o totalmente con otra ventana, o en
algunos casos de cambio de tamaño, veremos que el texto va cambiando. Es una forma de ir
investigando el comportamiento de la applet, y la frecuencia de la
invocación de paint.
Mas sobre las applets
Mas adelante investigaremos cómo colocar elementos en una applet,
como cajas de texto editables, listas y botones, entre otros. También
aprenderemos a dibujar y a colocar imagenes.
Hasta podremos animar las imagenes. Pero antes,
se debe se debe aprender lo basico, y estudiar el lenguaje Java,
paraluego lanzarse a esos otros terrenos.
CONOCIENDO AL LENGUAJE JAVA
Simplicidad
Ya se ha mencionado que el equipo original que desarrolló Java lo hizo
por necesidad, al no cumplir los lenguaje existentes con todo lo que
necesitaban para el proyecto en marcha. Pero, como buenos
diseñadores, no inventaron todo de nuevo, sino que se basaron en lo ya
hecho y probado. Es por esa razón que el código
Java se expresa en archivos de texto comunes, y tiene una apariencia muy
familiar para los programadores de C/C++ y para los programadores en general.
Los fragmentos del
lenguaje que se han visto, lo ejemplifican.
Orientación a objetos
A primera vista parece que todos los productos nuevos de software tienen algo
'orientado a objetos'. En el caso de Java, la
aplicación de esa calificación es totalmente acertada. De
hecho, en Java, todo es un objeto. Se vera que
éstos se definen en clases, con atributos y métodos,
agrupandose en paquetes, y exponiendo interfaces, permitiendo herencia y
polimorfismo, implementando así la tecnología de objetos de una manera
muy completa, y a la vez sencilla y agradable. Reconoceremos al estudiar se
semantica, que Java es realmente un lenguaje
que merece ser llamado 'totalmente orientado a objetos'.
Soporte de múltiples plataformas:
El proceso de compilación no produce código para un procesador en
particular, como en los compiladores C/C++, sino que genera código para
un procesador ideal,denominado maquina virtual Java (Java Virtual
Machine, o Java VM). La razón de esta conducta es simple: la necesidad
de poder ejecutarse en cualquier plataforma, sin necesidad de cambiar el
código fuente, ni aun de recompilar. Todo
programa Java se traduce en una serie de códigos (llamados bytecodes)
para un procesador imaginario, al Java VM, que puede
ser implementado facilmente en cualquier plataforma poderosa. Es
así como
el lenguaje y sus aplicaciones se independizan de ña maquina
destino, a costa de algo de velocidad, provocada por la necesidad de
'simular' la Java VM, mediante software.
Veremos que aun los tipos primitivos de datos quedan definidos de un solo golpe, para todas las plataformas. Nos evitamos
así las pesadillas de portabilidad, conocidas por los programadores de
C/C++, al cambiar, por ejemplo, de ambiente a ambiente, el tamaño de los
enteros, o el conjunto de caracteres soportados. En Java, esos problemas no
existen: sólo existe una maquina virtual.
Manejo automatico de memoria
Ya se ha mencionado, que el lenguaje Java se compone de objetos. Lo que no se
ha descripto, es que esos objetos pueden y deben crearse, y tienen una vida que
dura hasta su destrucción. Mientras que la creación de los
objetos se deja bajo la voluntad del
programador, la destrucción definitiva de un objeto ocurre cuando no es
mas referenciado por otros objetos del programa. De esta forma, se elimina una
de las causas mas comunes deerror en otros lenguajes, como la
destrucción por el programador de objetos aun en uso en el programa, o
la falta de destrucción de objetos que ya son inútiles, pues no
se usan en el resto de la ejecución, pero que molestan con empleo de
recursos. Esta técnica de manejo automatico.
Esta técnica de manejo automatico de memoria ocupada por los
objetos se denominan garbage collection, algo así como
recolección de basura. En una aplicación Java hay siempre un proceso, ejecutado como un
hilo de ejecución
separado, que se ocupa de recorrer la memoria donde se encuentran los objetos,
y determinan cuales son pueden liberarse y destruirse. Bye
(adiós) punteros y problemas de memoria.
Seguridad
Todo el que ha trabajado en una computadora personal, se ha topado de una u
otra forma con los problemas de virus, o de confidencialidad de los datos. Al
parecer Internet, y distribuirse programas por toda las red, el problema de la
seguridad ha tomado una nueva dimensión, mas grave, ya que
actualmente a nuestra maquina pueden llegar aplicaciones hostiles y
virus malignos, desde cualquier punto del planeta. Java ha sido adaptado
a Internet, pensando mucho en el tema seguridad. Una
'applet' java se ejecuta en un entorno, que
impide su intromisión en la maquina cliente. No hay, entonces,
posibilidad de un virus Java, viajando por toda la
red.
Java no se aísla y evoluciona:
Como Java trata de ser un lenguaje de producción, no un
lenguajeacadémico o ideal, o tiene 'miedo' de comunicarse con
librerías de otros lenguajes. Tiene capacidades
definidas para implementar clases y métodos (o funciones), escritos, por
ejemplo, en C/C++. Esto nos permite usar lo que
ya esta hecho, en cada plataforma de implementación. Igualmente,
recordemos que Java es un lenguaje de uso general, y muchas
de las rutinas y librerías que necesitaremos para un proyecto, pueden
ser escritas en Java. Debido al éxito del lenguaje, y a
su difusión, cada día aparecen nuevas herramientas y paquetes de
clases escritas por otros programadores, listas para ser usadas en nuestro
próximo sistema.
Programando para el mundo
Cuando Ud. Comience a programar en Java, y en especial para la Web,
experimentara una sensación, que hasta la llegada de Java, era
difícil de encontrar: el hecho de generar aplicaciones que pueden ser
ejecutadas por millones de personas, en ambientes disímiles. Sus
programas podran viajar por la red de redes, y ser fruto de
satisfacción y diversión. Es un nuevo
universo de programación, que apenas comenzamos a explorar.
Bibliografía: 'La interpretación de mi aprendizaje (yo he
estudiado el lenguaje Java, y, en base a lo entendido/aprendido escribí
lo que ha visto y ha leído)'
Autor
Jairo
jr281089@yahoo.com.ar
Bien, que tenga mucha suerte con el aprendizaje del lenguaje y 'Hasta La Próxima
(pienso escribir algo mas de Java, dado que esto no puede quedar
aquí)'.