Developpez.com

Le Club des Développeurs et IT Pro

BicaVM : une implémentation de la machine virtuelle Java

En JavaScript

Le 2011-11-21 13:31:39, par Hinault Romaric, Responsable .NET
Les navigateurs pourront dans un futur proche intégrer une sorte de machine virtuelle, permettant d’exécuter du code d’un langage autre que du JavaScript. C’est la vision d’un développeur qui vient de mettre sur pied une machine virtuelle Java en JavaScript.

Arthur Ventura, un développeur portugais des solutions open sources, vient de présenter BicaVM, une implémentation de la machine virtuelle Java (JVM) en JavaScript, capable de fonctionner dans n’importe quel navigateur moderne.

La principale difficulté du port de la JVM en JavaScript est le temps d’exécution du bytecode. Cependant, avec les importantes augmentations de la vitesse d’exécution du JavaScript qui ont été apportées aux différents moteurs, les développeurs de BicaVM ont pu obtenir des temps d’exécution acceptables.

L’avantage de cette solution est qu’elle devrait permettre l’exécution du Java sur les plateformes qui n’offrent pas un support natif du Java comme iOS. De plus, Ventura soutient que cette approche permet d’obtenir le sandboxing automatique ainsi que l’indépendance et la persistance du navigateur.

BicaVM est pour l’instant présentée par son développeur comme une preuve de réalisation, mais permet déjà néanmoins de gérer correctement 60 % du bytecode et peut tourner sur l’iPhone/iPad.

Cette solution n’est pas la première implémentation JavaScript de la JVM. John Resig, créateur de jQuery avait également en 2008 présenté une démo d’Ortho une autre application de la JVM en JavaScript.

Télécharger BicaVM

Source : Blog Arthur Ventura

Et vous ?

Que pensez-vous de ce projet ? Et de l’exécution d'un langage autre que le JavaScript dans le navigateur ?
  Discussion forum
7 commentaires
  • forthx
    Membre éprouvé
    il suffi de faire fonctionner ca sur un os virtualisé (pour la 3eme couche!)

    Trêve de plaisanterie, vous avez deja essayer de coder une application qui fait un minimum de calcul en javascript? Moi oui (application de calcul de hachage), pour me prouver une chose : c'est et extrêmement lent a l’exécution, vois ca plante. (tester avec ie, ff et chrome, peut être que safari fait mieux).
    J'ai pris ce code javascript, j'ai typé mes variables, refait la couche graphique (de souvenir c'est pas loin d’être tout) et je l'ai exécuté sur ma jvm (windows 32bits) et la j'ai une accélération de ... plus de 100x !

    Actuellement on utilise java pour des applications lourdes (regardez du coté des application netbean rcp et eclipse rcp si vous souhaitez des exemples), et ce langage commence a apparaitre dans le domaine des jeux 3d.

    Le projet d'avoir une application java vraiment multiplateforme (ce qui est de moins en moins le cas) est intéressante mais est-ce la bonne solution de passer par javascript pour ca?

    Notez que je vais m’empresser de tester ce que ca donne et je vous envoi les résultats (edit : bon j'ai essayer, en suivant le readme, l'exemple ne fonctionne qu'avec chrome, je n'ai pas trouver comment compiler ma propre source java, ou "executer" un .class simple)
  • bugsan
    Membre confirmé
    Ca serait marrant de le faire tourner dans Apache Rhino (interpréteur javascript pour la JVM).
    Lui même tournant dans ... bon OK j'arrête.
  • amezghal
    Membre habitué
    Ca me rappelle le film "inception"
    machine virtuelle dans une machine virtuelle ah il manque encore une autre
  • skywaukers
    Membre émérite
    Et si on écrivait un navigateur en Java qui tournerai sous bicaVM, qui intégrerait un interpréteur Javascript, on pourrait faire tourner bicaVM dessus, ce serait cool parce qu'on pourrait aussi faire tourner notre navigateur Java dessus...

    @++
    Dany
  • polkduran
    Membre actif
    Il faut arrêter de vouloir tout faire en js
  • ZiGoM@r
    Membre averti
    Je vais enfin pouvoir coder un interpréteur Basic en Java compatible web pour y exécuter toute sorte de compilateur écris en Basic...

    A quand une VM standard ?
  • Traroth2
    Membre émérite
    Ça peut faire tourner Erjang ? La version de la machine virtuelle OTP écrite en Java...