V8 für die Java-Welt

J2V8 3.0 erschienen: Googles V8-JavaScript-Runtime für Java

Michael Thomas

© Shutterstock.com/ ScandinavianStock

Seit gut einem Jahr arbeitet der Eclipse-Committer Ian Bull an J2V8. Die nun veröffentliche, mittlerweile dritte Hauptversion der V8-basierten JavaScript-Runtime für Java hält für ihre User einige interessante Neuerungen bereit.

So erhält J2V8 mit der neuen Hauptversion nun eine Multithread-Unterstützung, d. h. dass nun mehrere V8-Runtimes mit je eigenem Thread erstellt und somit Worker-Threads mit eigener, isolierter Runtime gestartet werden können.

Die Multithread-Programmierung soll durch die Einführung der V8Executor-Klasse erleichtert werden: Dabei handelt es sich um einen Thread, der eine eigene V8Runtime enthält, nach dem Start das jeweilige JavaScript in der isolierten Runtime ausführt und anschließend auf Messages wartet. Der Executor läuft dabei so lange bis er explizit beendet wird und soll die Einbindung von WebWorkers in eine gegebene J2V8-Anwendung besonders einfach machen.

Darüber hinaus ist V8Function ab sofort ein First-Class-Objekt, wodurch die Speicherung und Weitergabe von JavaScript-Funktionen deutlich erleichtert werden soll. Last but not least ist mit J2V8 3.0 erstmals der Support von Linux gegeben.

Warum J2V8?

Für eine Verbindung von JavaScript und Java stehen einige Möglichkeiten zur Auswahl, als Beispiele sind etwa die etwas angestaubte JavaScript-Engine Rhino, deren Ablösung Nashorn sowie die JavaScript-Plattform Avatar zu nennen.

J2V8 verfolgt jedoch einen etwas anderen Ansatz als die letztgenannten: Wie ihr Name bereits verrät, basiert die Runtime auf Googles ausgereifter JavaScript-Engine V8. Wie der Entwickler Ian Bull in der damaligen Ankündigung schrieb, soll J2V8 einige Defizite wettmachen, die Rhino und Nashorn seiner Darstellung nach aufweisen: Im Gegensatz zu den beiden anderen Engines, die Wrapperklassen erfordern, unterstützt J2V8 zum einen Primitives, was dem Projekt einen erheblichen Performanceschub verleiht. 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 hingegen schon.

Aufmacherbild: Javascript concept blue background with blue text von Shutterstock.com / Urheberrecht: ScandinavianStock

Verwandte Themen:

Geschrieben von
Michael Thomas
Michael Thomas
Michael Thomas studierte Erziehungswissenschaft an der Johannes Gutenberg-Universität Mainz und arbeitet seit 2013 als Freelance-Autor bei JAXenter.de. Kontakt: mthomas[at]sandsmedia.com
Kommentare

Hinterlasse einen Kommentar

Hinterlasse den ersten Kommentar!

avatar
4000
  Subscribe  
Benachrichtige mich zu: