JVM 5 es el nuevo Internet Explorer 6
Este es el título de una entrada de este blog donde se argumenta que la máquina virtual Java 5 es algo similar a Internet Explorer 6, algo sin lo cual el mundo sería un lugar mejor. Según el autor, no hay ningún motivo para seguir empleando esta máquina virtual para ejecutar aplicaciones Java. Aunque nuestro código esté desarrollado empleando Java 5, podríamos ejecutarlo (con bastante probabilidad) en una máquina virtual de Java 6 sin problemas, y con más rendimiento que en la máquina virtual de Java 5.
Digo con bastante probabilidad, porque aunque el autor afirma en su post que hay una compatibilidad hacia atrás total entre las máquinas virtuales Java, esto es verdad a medias. En la práctica hay algunos pequeños detalles que a veces rompen la compatibilidad hacia atrás. Algunos, introducidos de modo intencionado y documentados. Otros, introducidos de modo involuntario (como el cambio de la cadena de caracteres "vendor" que representa el fabricante de la máquina virtual cuando Oracle compró Sun) que pueden romper cosas.
En cualquier caso, si que es cierto que mucho código escrito para Java 5 podría ejecutarse sin problemas en una máquina virtual Java 6 con más rendimiento, y con menos problemas de seguridad (recordemos que Oracle hace dos años que no actualiza Java 5, tan siquiera para actualizaciones de seguridad).
Una excepción puede ser el caso de los servidores de aplicaciones, especialmente IBM Websphere y (hasta cierto punto) weblogic, que no corren sobre la máquina virtual de Oracle/Sun. Quizás éste sea uno de los motivos por los cuales se sigue usando bastante la máquina virtual de Java 5.
¿Seguís usando vosotros una máquina virtual de Java 5? ¿Creéis que la máquina virtual de Java 5 se ha convertido en un "Internet Explorer 6"? Hagamos una pequeña encuesta sobre este tema:
Reader Comments (3)
Solo un apunte. La última actualización de Java 5 para clientes con soporte de Solaris es del 18 de octubre de 2011. Aquí está la prueba:
/usr/jdk/jdk1.5.0_32/bin/java -version
java version "1.5.0_32"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_32-b05)
Java HotSpot(TM) Server VM (build 1.5.0_32-b05, mixed mode)
e incorpora los parches de seguridad que han ido saliendo. Yo no la gasto hace mucho. Hace ya tiempo que la JVM por defecto en Solaris 10 es la 6.0, aunque el sistema lleva instalada incluso una 1.4.2, la cual no recibe parches desde hace tiempo, y que quedó en la 1.4.2_32.
Teóricamente Java 5 llegó a su EOL hace dos años, por lo que Oracle no garantiza que la mantengan actualizada. Y hasta donde yo sé, bugs como el que permite el ataque BEAST contra https no han sido reparados en Java 5.
Oracle mantiene actualizado Java 5 si tienes soporte. De hecho, en esta página:
http://www.oracle.com/technetwork/topics/security/javacpuoct2011-443431.html
Tienes el CVE-2011-3389 que es el que corresponde al ataque BEAST y dice que es vulnerable Java 5.0 Update 31 y anteriores. Como la que salió el pasado día 18 es el Update 32, deduzco que sí está resuelto el problema. Al menos los clientes "pagoware" de Oracle tienen una solución. Para los demás, es más barato pasarse a la 6.0u29 y listo.