Menü
Developer

Nicht nur Java: IBM öffnet Java Virtual Machine J9 für andere Programmiersprachen

In Zeiten von polyglotter Platform as a Service und Cloud-Entwicklung hat IBMs neues OMR-Projekt das Potenzial, zum einheitlichen Werkzeugkasten für viele Sprach-Laufzeitumgebungen zu werden.

Von
vorlesen Drucken Kommentare lesen 33 Beiträge
Java: IBM öffnet J9 JVM für andere Programmiersprachen

IBM-Entwickler arbeiten an einem neuen Projekt, in dessen Rahmen ein Werkzeugkasten zur Entwicklung von Laufzeitumgebungen für Programmiersprachen entstehen soll. Die im OMR-Projekt entwickelten Techniken könnten für einen Performanceschub bei bereits bestehenden Laufzeitumgebungen sorgen.

Das Projekt besteht aus Teilen von IBMs Java Virtual Machine J9, seit 2015 das Herzstück von IBMs Java-Stack. Diese wurden jedoch von Java entkoppelt, sodass sie sich offenbar auch in Verbindung mit anderen Sprachumgebungen nutzen lassen. Es geht hier also erneut darum, die Vorteile einer (Java) Virtual Machine zu nutzen, ohne auch die Java-Semantik zu benötigen. Das ist eine Sache, die seit rund zehn Jahren die JVM zur Plattform für viele Programmiersprachen werden lassen hat.

Vorstellung der Multi-Language-Runtime

Derzeit arbeiten die OMR-Entwickler an Prototypen für Ruby und Python; die Ruby-Version auf Basis des derzeit aktuellen Ruby 2.3 soll außerdem schon bald als Open-Source-Software veröffentlicht werden – womöglich als Projekt der Eclipse Foundation. Das seit kurzem auf GitHub beschriebene Projekt besteht aus Komponenten, die sich nicht einfach so ohne weiteres in anderen Laufzeitumgebungen implementieren lassen. An erster Stelle ist hier der JIT Compiler (Just In Time) zu nennen, der sich positiv auf die Geschwindigkeit so mancher Programmiersprache auswirken kann.

Andere Komponenten sind ein Speicher-Allokator, eine Thread-Bibliothek, eine Plattform-Port-Bibliothek und ein Event-Hook-Framework. Darüber hinaus ist von einer Trace Engine und einem Garbage Collector die Rede. Diese Techniken finden sich für gewöhnlich in jedem Sprach-Interpreter, aber jeweils separat für diese Sprache implementiert.

Und hier lässt sich der wahre Grund für die Arbeiten an OMR erkennen. Ziel ist ein für alle Sprachen konsistentes Paket aus Werkzeugen, das sich im PaaS- (Platform as a Service) beziehungsweise Cloud-Kontext nutzen lässt, wo polyglotte Ansätze zur Selbstverständlichkeit werden. Denn die Arbeiten für die eine Laufzeitumgebung kommen auch den anderen zugute, zumal dies der Zersplitterung unterschiedlicher aktiver Sprach-Communitys entgegenarbeitet.

Die von IBM bereitgestellten Techniken sollen sich darüber hinaus beim Bau völlig neuer Sprachen nutzen lassen. Schließlich gestaltet es sich einfacher, die J9 JVM auf unterschiedlichen Hardwareplattformen (x86-64, ARM, Power Systems) einzusetzen und zu warten.

Siehe dazu auf heise Developer:

(ane)