Neues JavaScript-Projekt J2V8: V8 für die Java-Welt

Redaktion JAXenter

Bindeglieder zwischen der JavaScript- und der Java-Welt gibt es mittlerweile einige: Die in die Jahre gekommene JavaScript-Engine Rhino, deren Ablösung Nashorn sowie die JavaScript-Plattform Avatar, deren 2.0-Version Oracle auf der diesjährigen JavaOne präsentierte, sind einige bekannte Beispiele.

Seit vier Monaten entwickelt der Eclipse-Committer Ian Bull eine neue JavaScript-Runtime für Java, die er gestern als Open Source auf GitHub veröffentlichte. Wie der Name „J2V8“ verrät, basiert die Runtime auf Googles ausgereifter JavaScript-Engine V8.

Wozu ein weiteres JavaScript-Projekt?

Wie Ian Bull in der Ankündigung schreibt, soll seine J2V8 einige Defizite wettmachen, die Rhino und Nashorn seiner Darstellung nach aufweisen: Zum einen unterstützt sie Primitives, im Gegensatz zu den beiden anderen Engines, die Wrapperklassen erfordern. Zum anderen muss man in puncto Android keine Unzulänglichkeiten hinnehmen: Compiler-Optimierungen seien mit Rhino nicht unter Android möglich, Remote Debugging unterstütze keine der beiden Engines, so Bull. J2V8 schon.

Auf Basis von Primitives

Für J2V8 wählte Bull einen Primitive-basierten Ansatz, der ihr einen erheblichen Performanceschub verleiht: Ein Testskript führte die neue Engine 7,5 mal schneller aus als Rhino – und könnte damit die Geschwindigkeit der Original-V8-Engine erreichen, die laut einem Benchmarktest Rhino und Nashorn klar überlegen ist.

Dank Java Native Interface (JNI) J2V8 können Entwickler Teile des V8-API direkt in Java-Anwendungen einbetten, ohne C/C++-Code schreiben zu müssen. 

J2V8 steht unter Eclipse Public License und soll sich unter MacOS, Linux und Android ausführen lassen.

Geschrieben von
Kommentare

Hinterlasse einen Kommentar

2 Kommentare auf "Neues JavaScript-Projekt J2V8: V8 für die Java-Welt"

avatar
400
  Subscribe  
Benachrichtige mich zu:
Niko Köbler
Gast

IMO vergleicht hier Ian Bull Äpfel mit Birnen, wenn er J2V8 mit Rhino vergleicht. Rhino ist alt und langsam… Interessant wäre der Vergleich mit Nashorn und ggf. DynJS. Nashorn ist in Benchmarks bereits bis zu 10 mal schneller als Rhino. Das würde dann auch das 7,5-fache von J2V8 zu Rhino übertreffen. Zudem kommt mit dem nächsten Java Release 8u40 ein deutlicher Performance-Gewinn für Invokedynamic/Nashorn.
Werde mir das mal anschauen, sobald ich Gelegenheit dazu haben werde.

dasniko
Gast

Ok, vielleicht war ich etwas voreilig was die Äpfel und Birnen betrifft, Ian hat mir mittlerweile mehr zu den Hintergründen (Android) erzählt. Ein paar Performance-Messungen mit JVM-basierten JS-Runtimes habe ich trotzdem mal durchgeführt: http://blog.n-k.de/2014/11/something-on-javascript-performance-and.html