Aplicaciones y Applets

Hoy toca hablar de applets. ¿Qué son y para qué sirven? Suele ser una pregunta bastante extendida. Si has vivido los primeros años de internet y en especial los primeros años de la década del dos mil – cuando todo era campo, Yahoo y Geocities – te sonará aquello de “no es posible cargar applet de Java para este sitio”. Los applets son programas escritos en Java y forman parte de los componentes de una página Web. Ya en desuso proporcionaban funcionalidades a las páginas creadas en HTML imposibles de ofrecer de otro modo. Hay que pensar que, en aquellos tiempos, todo se resolvía a base de tablas y el CSS era cosa de ciencia ficción.

El uso de Applets llegó a ser ampliamente extendido porque proporcionaba la posibilidad de ejecutar código con independencia del sistema operativo usado para visitar la Web. Un usuario podría estar usando Windows o Mac e incluso Linux que vería exactamente lo mismo en cualquiera de estos sistemas operativo. Eso sí, todos debían disponer de “la máquina virtual de Java (JVM, por sus siglas en inglés).

Pero no todo eran ventajas. Con el tiempo, no faltó quien lograba darle otro uso afectando a la seguridad de nuestra navegación o explotando vulnerabilidades de nuestro sistema y la máquina virtual de Java. Esto hizo patente su necesidad de bloquearlos por defecto, siendo necesaria una acción manual por parte del usuario para iniciar su carga y funcionamiento. De hecho, hoy por hoy, navegadores como Google Chrome muestran un mensaje de advertencia alertando al usuario y bloqueando su ejecución.

Por este motivo, y aunque Oracle insista en mantenerlos vigentes, los applet son considerados hoy por hoy algo en desuso y una tecnología condenada a desaparecer. Sin embargo, su estudio todavía se aconseja. No por requerimiento de Oracle en sus certificaciones Java, que también, sino porque siempre es interesante ver con ejemplos sus posibilidades técnicas y aprender de ellas. Por ejemplo, con los applet podemos abarcar funcionalidades como:

  • Funciones especializadas, como por ejemplo, applets para calcular el valor del ángulo inscrito en una circunferencia y circuncentro de un triángulo.
  • Mostrar secuencias de imágenes y agregar efectos visuales.
  • Mostrar imágenes con sonidos y agregar efectos sonoros.
  • Permitir la presentación de gráficos interactivos, reaccionando a acciones que se toman con el mouse sobre el gráfico.
  • Animaciones de textos y efectos especiales sobre los mismos.
  • Crear diagramas y gráficas, como por ejemplo, la clásica gráfica de trozos de pastel.
  • Juegos sencillos.

 

Integración página web/ código Java

Si has llegado hasta aquí seguramente es porque te ha picado la curiosidad. Aunque es una tecnología en desuso, todavía algunas web hacen uso de ella y nunca está de más conocer algo más y sus posibilidades. Para empezar, conviene destacar que podemos escribir nuestro applet en cualquier lenguaje de programación que sea compatible con el código que genera Java, como por ejemplo Jruby, Pascal, Scala, etc.

<title> Página web con Applet </title>
<applet code= ”Codigo.class” width=300 height=200>
</applet>
...

 

Como podemos ver, utilizamos la etiqueta applet para definir la ruta de nuestro código y dimensiones que ocupará en pantalla. Tan simple como si estuviéramos incluyendo una imagen en nuestro código html. Y aunque pudiera sorprender, hasta aquí no hay más misterio. Eso sí, si quisiéramos escribir nuestro primer “Hola Mundo” siguiendo el ejemplo en un fichero llamado “Código.class” esto sería tal que así:

import java.awt.*;
import java.applet.Applet;
public class HolaMundoApplet extends Applet {
  public void paint(Graphics g){
  g.drawString("Hola mundo”, 50, 50);
  }
}

 

A veces es más fácil ir probando a partir de un ejemplo un poco más elaborado. En el siguiente ejemplo crearemos un applet en donde jugamos con la posición de una pelota.

import java.applet.Applet;
import java.awt.*;
import java.awt.event.*;
public class JugarBalon extends Applet implements
ActionListener {
 private Button mas, menos, izq, der;
 private Balon miBalon;
public void init() {
 mas = new Button(“Mas”);
 add(mas);
 mas.addActionListener(this);
 menos = new Button(“Menos”);
 add(menos);
 menos.addActionListener(this);
 izq = new Button(“Izquierda”);
 add(izq);
 izq.addActionListener(this);

 der = new Button(“Derecha”);
 add(der);
 der.addActionListener(this);

miBalon = new Balon();
}

public void actionPerformed (ActionEvent
event) {
 if (event.getSource() == mas)
 miBalon.crecer();
 if (event.getSource() == menos)
 miBalon.decrecer();
 if (event.getSource() == izq)
 miBalon.irIzq();
 if (event.getSource() == der)
 miBalon.irDer();
 repaint();
}
public void paint(Graphics g) {
 miBalon.mostrar(g);
}
}

 

El resultado sería algo similar a la siguiente captura:

Con este sencillo ejemplo es más fácil entender la utilidad que antes tenían los applet en JAVA dentro de una aplicación Web. Por lo general, si quieres saber más personalmente recomiendo consultar Writing Applets, la guía de aprendizaje de Sun Microsystems para applets Java que incluye todo lo necesario para poder familiarizarse con ellos.

 

Aplicaciones

Tal como comentaba antes, esto de los Applet pasó un poco a ser cosa del pasado a partir de 2010 cuando ya era evidente que todo hacker del lado oscuro de la fuerza lo usaba para sacar provecho de las vulnerabilidades de nuestro sistema. Y esto nos lleva a la otra forma que tenemos de distribuir programas en JAVA. Hablo de las aplicaciones.

Las aplicaciones son programas autónomos que no requieren la utilización de un navegador. A diferencia de los applet, las aplicaciones se ejecutan mediante una instrucción en el intérprete de comandos de Java y especificando el archivo que contiene la aplicación compilada.

Generalmente, las aplicaciones residen en el sistema en el que se despliegan. Estas aplicaciones se presentan en un tipo de archivo JAR que permite su ejecución y, por motivos de seguridad, las aplicaciones que acceden a recursos del sistema están restringidas por el modelo de seguridad Java. Los archivos JAR están comprimidos con el formato ZIP y cambiada su extensión a .jar.

Quizá te resulte familiar porque hasta hace no mucho era un formato muy popular para la distribución de pequeños juegos desarrollados en JAVA para teléfonos inteligentes. En la actualidad siguen resultando de utilidad para distribuir pequeños programas ya que es un formato muy cómodo y que suele ocupar poco espacio. Generar este tipo de fichero es tan simple como indicar que en nuestro IDE de desarrollo que queremos compilar nuestra aplicación, sea guardado en este tipo de extensión.

 

Conclusión

Tanto desarrollar pequeñas aplicaciones como pensar en usar applets a la hora de distribuir nuestros programas tiene sus pros y contras. Está claro que en la actualidad pensar en usar applets no es quizá la mejor idea ya que prácticamente ningún navegador moderno le gusta la idea de ejecutarlos en su memoria, no sin antes mostrar un mensaje de advertencia al usuario -- lo que genera desconfianza. Pero no deja de ser interesante familiarizarse con el concepto y sus fundamentos. Tampoco es que sea más popular distribuir nuestro programa como una aplicación .jar, pero contamos con la ventaja de que podemos distribuir nuestro software en cualquier sistema operativo desde teléfonos móviles a PC de escritorio, donde el límite se encuentra en la cantidad de memoria que necesitemos mover.

 

Guía de Posibilidades Profesionales en el Ecosistema de Java