Maruf Maniruzzaman un ingeniero de Bangladesh ha publicado lo que fue su proyecto de tesis de la carrera de Computer Science: una implementación de la Java Virtual Machine. Esta implemetación, como define Maruf, es muy limitada sobre todo en cuanto al soporte de librerías e interfaces nativas. Sin embargo sirve muy bien para darse una idea de cómo se estructura la JVM por dentro e incluso tiene una implementación del Garbage Collector.
Maruf ha liberado el código fuente bajo la licencia GPL
Noticia publicada en www.javahispano.org. Accede a la página web y participa
John Resig escribe en su blog acerca de un proyecto que conoció en Japón, se trata de "Orto" una implementación de la Java Virtual Machine en Javascript. desarrollada por el grupo de usuarios de Shibuya.JS (que por cierto dicen ser el único grupo de usuarios de Javascript en el mundo).
La idea es que puedas tomar cualquier bytecode Java y Orto es capaz de generar el javascript para ejecutarlo en cualquier navegador. Obviamente, no toda la JVM está implementada, pero incluye soporte a threads (simulados obviamente), conversión de elementos gráficos java a elementos HTML similares y soporte a eventos generados por el teclado.
Sin duda una idea interesante para explorar, en cierto sentido es similar a GWT que traduce Java a javascript pero en este caso, los desarrolladores buscan tener todos los recursos de una JVM en javascript.
Sí, es verdad, el título busca provocar. Pero en el buen sentido, para animar a que surja un debate interesante. Siguiendo una noticia publicada en planeta javaHispano en la que se comenta que Jonathan Schwartz afirma que están pensando en quitar la J de JVM, he llegado, por medio de un enlace, al conocimiento de la existencia de un proyecto llamado Máquina de Da Vinci de Sun. Se trata de una tecnología que permite mejorar el soporte para la ejecución de múltiples lenguajes en la JVM. En el fondo, supone un cambio sustancial en la actual JVM y de algún modo una aproximación a la filosofía de .NET. ¿Créeis que eso favorecerá a Java?