Magik: Die magische Programmiersprache für die JVM

Hartmut Schlosser

Ohne Zweifel ist die Java-Plattform mit ihrer Idee der Java Virtual Machine attraktiv für eine Vielzahl von Sprachen. Prinzipiell können beliebige Hochsprachen in Bytecode umgewandelt werden, der dann von der JVM auf den verschiedenen Plattformen ausgeführt wird. Doch waren die Weichen der JVM von Beginn an klar auf eine statische Typisierung gestellt. Dynamische Sprachen konnten sich deshalb nur bedingt mit der JVM anfreunden. Doch der im Rahmen des JSR 292 entwickelte und seit Java 7 verfügbare Bytecode-Mechanismus invokedynamic brachte in dieser Hinsicht eine deutliche Verbesserung, indem nun gezielt dynamische Methodenaufrufe unterstützt werden. Die Früchte dieser Entwicklung werden langsam sichtbar. Jetzt hat das Unternehmen General Electric seine dynamische Programmiersprache Magik auf die JVM gebracht.

Magik ist eine an Smalltalk angelehnte, objektorientierte, dynamisch typisierte Sprache, die für die Enterprise-Entwicklung im Telco-Bereich entstanden ist. Als Teil der GE-Energy-eigenen Smallworld-Plattform (Geoinformationssystem zur Verwaltung von geografischen und topologischen Informationen) fristet sie bereits seit 1990 ihr Dasein. Und das relativ im Stillen, was wohl auch damit zu tun hat, dass Magik bisher eine eigene Virtual Machine nutzte: die Magik Virtual Machine. Die große Java-Bühne blieb Magik deshalb verwehrt, was sich nun aber ändern soll: Oracles Jim Connors vermeldet auf seinem Blog die Fertigstellung der Magik-Portierung auf die JVM.

Die Vorteile dieser Portierung stellt Connors folgendermaßen heraus:

  • Wettbewerber können nun nicht mehr behaupten, Magik sei eine proprietäre Technologie
  • Der ganze Reichtum der Java Klassen-Bibliotheken und Anwendungen steht nun auch Magik-Entwicklern aus erster Hand zur Verfügung
  • Die riesige Community von 9 Millionen Java-Entwicklern wird nun auch auf die Magik/JVM Lösung aufmerksam
  • Auch die Performance der JVM ist ein Trumpf: In manchen Fällen ist diese bis zu 5 Mal besser als auf der Magik-Plattform
  • Legacy-Magik-Anwendungen können einerseits auf der Originalplattform bleiben, andererseits aber durch einfaches Recompiling auf die JVM migriert werden
  • GE profitiert von der ständigen Weiterentwicklung der Java-Plattform, die mit einer Dynamik vorangetrieben wird, die GE selbst nicht leisten kann
  • So bietet Magik beispielsweise keinen wirklichen Multi-Threading Support – hier weisen neue Java-Konstrukte wie die Lambda-Ausdrücke in die Zukunft
  • Da die JVM für eine Vielzahl von Plattformen verfügbar ist, wird die Reichweite von Magik beträchtlich ausgeweitet

Das sind wohl unübersehbare Argumente, die auch so manch anderen Entwickler dynamischer Sprachen auf die JVM schielen lässt. Doch was bietet Magik, was andere Sprachen nicht schon längst im Gepäck haben?

Hier lassen wir am besten Conners selbst zu Wort kommen:

As compared to other JVM language projects, the Magik integration differs in that it represents a serious commercial entity betting a sizable part of its business on the success of this effort. Expect to see announcements not only from General Electric, but other organizations as they realize the benefits of utilizing the Java Virtual Machine.

Magik liegt zurzeit in der Version 4.x vor, auch eine leichtgewichtige Magik SF (Small Footprint) Variante wird angeboten. Entwickelt wird mit der Smallworld-IDE MDT (Magik Development Tools). Ein Wikipedia-Artikel gibt einen ersten Überblick. Außerdem können sich Interessierte auf dem Blog Fun with Magik umtun, auf dem fortgeschrittene Anwendungsbeispiele durchgespielt werden.

Was denken Sie? Wieviel Magie kann Magik für Sie hervorzaubern?

Geschrieben von
Hartmut Schlosser
Kommentare

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.