BicaVM: Eine JavaScript JVM lässt Java laufen

Kein Kommentar Autor: Jürgen (jdo)
BicaVM (Quelle: surf-the-edge.com)

BicaVM (Quelle: surf-the-edge.com)

Die Software-Welt ist sowieso schon leicht durchgeknallt, weil sie mit den verschiedenen Porgrammiersprachen total flexibel ist. Sobald man sich einmal damit abgefunden hat, dass ein Compiler die Sprache übersetzt in der er selbst geschrieben ist, hat man sich auch mit dem “Henne oder Ei? Was war zuerst?”-Problem arrangiert. Allerdings ist eine Java Virtual Machine in JavaScript geschrieben eine neue Ebene der Verrückheiten, findet i-porogrammer.info.

Eigentlich ist die Idee gar nicht so abwegig, da Java selbst zunächst nicht in Maschinen-Code umgewandelt wird. Dieser wird von einer virtuellen Maschine übersetzt, welche wiederum in nativem Maschinencode geschrieben ist. Das hält natürlich Programmierer nicht davon ab, Java in jeglich verfügbaren Sprache zu implementieren. Das einzige Problem ist, dass die Implementierung einigermaßen schnell sein muss, damit der Code in einer annehmbaren Geschwindigkeit läuft.

Bislang war eine JVM in JavaScript schwierig. In letzter Zeit sind die JavaScript-Engines aber deutlich schneller und effizienter geworden. Das hat den einsamen Coder Artur Ventura bewogen, einen Großteil der Standard-JVM in JavaScript zu schreiben.

Seinen Beweggrund beschreibt er ausführlich auf seinem Blog. Anstatt JavaScript in Web-Browsern zu implementieren sollte man eine virtuelle Maschine haben, damit man jede Sprache benutzen kann.

Nach sechs Monaten harter Arbeit ist BicaVM entstanden. Der Entwickler behauptet, dass 60 Prozent des Bytecodes laufen. Es läuft auf dem iPad/iPhone und unterstützt eine JNI-Schnittstelle, aber es seien noch diverse Optimierungen notwendig.

Ob dabei jemals etwas Produktives herauskommt ist dahingestellt. Es ist mehr ein Proof-of-Concept, aber längst nicht so abwegig, wie die Idee auf den ersten Blick erscheint. Den Code zu BiccaVM gibt es bei GitHub.




 Alle Kommentare als Feed abonnieren

Kommentare sind geschlossen.