une machine virtuelle Java écrite en JavaScript.
Doppio est un projet visant à obtenir du Java s'exécutant dans le navigateur sans aucun plugin. Actuellement, le projet comprend une machine virtuelle assez complète et une implémentation du désassembleur de bytecode javap. Doppio est le mot italien pour dire "double" et est un autre nom pour commander un "espresso double".
Le projet est toujours en cours d'évolution mais il est déjà possible de l'utiliser car il supporte beaucoup de choses comme :
- les 200 codes opération ;
- une émulation des types primitifs de Java, notamment le long de 64 bits ;
- la plupart de l'API Reflection ;
- les standards pour les I/O ;
- des bibliothèques JDK telles que String, Pattern et HashMap.
Le code a été testé sur Chrome, FireFox et Safari mais il devrait fonctionner sur tous les navigateurs qui supportent localStorage et les tableaux typés.
Avoir une machine virtuelle Java dans le navigateur n'est pas une mauvaise idée. Il y a beaucoup d'autres langages qui compilent du bytecode, notamment les implémentations des langages existants tels que Ruby (JRuby), Python (Jython) et JavaScript (Rhino) ainsi que de nouveaux langages tels que le Scala, Clojure et bien plus.
Actuellement Doppio interprète le bytecode à la volée, mais les auteurs mentionnent qu'ils veulent effectuer une transition vers une solution plus compilée.
Site officiel.
Démonstration.
Code source.
Source : annonce sur BadAss JavaScript.