Ventajas y desventajas del intérprete de máquina virtual de Java (JVM)

Antes de Adobe Flash y tecnologías web modernas, los dueños de sitios usaban Java para webs interactivas atractivas. Como Flash, un programa Java reproduce películas, genera gráficos de alta calidad y soporta apps complejas parecidas a apps de escritorio. El intérprete de Máquina Virtual Java (JVM) que corre en segundo plano hace posibles estas ventajas, pero tiene desventajas notables.

Anatomía de una Máquina Virtual Java

"Java" tiene varios sentidos: lenguaje de programación, especificación API, o especificación JVM. Al visitar web con programa Java (applet), el navegador activa la JVM que interpreta el código Java y ejecuta el applet. Como máquina real, la JVM procesa instrucciones y gestiona áreas de memoria.

Ventaja: Java corre en área protegida

Imagina si una web pudiera borrar tus archivos o ver documentos privados. Aunque applets Java hagan tareas útiles imposibles en HTML, Java corre aislado dentro de la JVM. Esta asegura que un applet rebelde de sitio peligroso no acceda a recursos del sistema como discos duros.

Desventaja: Cibercriminales pueden explotar la JVM

Aunque la JVM restringe acciones del applet, atacantes pueden explotar debilidades en la plataforma Java. Ejemplo: inicios 2013, Microsoft vio tres applets diseñados para ejecución remota de código e infectar equipos. Oracle (desarrollador de Java) lanzó actualización que pone nivel de seguridad por defecto en "Alto", avisando al intentar ejecutar applet sin firmar. "La gran mayoría de applets que explotan vulnerabilidades no están firmados", nota Microsoft. Una firma digital en applet identifica al creador y verifica que nadie lo modificó tras firmarlo.

Ventaja: Talla única (multiplataforma)

"Multiplataforma" = capacidad de correr en distintos hardware. Al ser Java multiplataforma, desarrolladores escriben un código que corre en PCs, Macs, móviles y cualquier dispositivo con JVM. Java no siempre ejecuta en navegador; puedes descargar apps Java que corran en escritorio como programas normales.

Desventaja: Puede requerir instalación

Si nadie instaló Java Runtime Environment en tu computadora, no puedes usar Java. Visita página "Verify Java Version" y sigue instrucciones para descargar e instalar última versión si no la tienes. Aunque no es instalación larga, pueden surgir problemas; consulta página de solución de problemas de Java si necesitas ayuda.

Ventajas adicionales

En detalle, la JVM usa compilador just-in-time para convertir código Java a lenguaje máquina de bajo nivel que corre tan rápido como apps normales. Como navegadores pueden cachear este código compilado, lo reutilizan luego sin descargarlo ni recompilar.