Loop stellt sich vor: Eine neue Sprache für die JVM

Hartmut Schlosser

Eine neue Sprache für die JVM hat das Licht der Welt erblickt: Loop. Inspiriert von Haskell, Scheme und Ruby, stellt Loop eine stark typisierte Sprache mit besonderem Fokus auf nebenläufige Programmierung dar. Loop wurde als Forschungsprojekt über mehrere Jahre hinweg von Dhanji R. Prasanna, ehemaliger Google-Wave-Entwickler und Mitautor der JAX-RS (RESTful Web Services) Spezifikation, entworfen.

Auf der Projektseite heißt es, Loop sei eine „kleine Sprache für die JVM mit besondrem Fokus auf Einfachheit und parallele Programmierung“. Unter http://looplang.org/ steht nun erstmals eine Dokumentation mit Programmierbeispielen, FAQ und Mailing-Liste bereit. Auch die Philosophie wird dort näher erläutert. Als funktionale Sprache bringe Loop nicht den Balast der Plattform-Sprache Java mit sich, harmoniere aber dennoch gut mit Java und mache dort auch die eine oder andere semantische Anleihe. Generell habe beim Sprach-Design semantische Klarheit den Vorrang vor Bequemlichkeit gehabt.

Ein Hello-World in Loop nimmt die wohl denkbar einfachste Form an:

print('hello there')  

Alles in Loop ist entweder eine Funktion oder ein Wert. Funktionen nehmen Argumente entgegen und geben stets einen einzigen Wert zurück. Leere Funktionen („void“) existieren nicht in Loop. Nebenläufigkeit wird über die Konstrukte der Channels und Speichertransaktionen („memory transactions“) realisiert. Das Typensystem wird als „dynamisch, stark, mit Duck Types“ beschrieben.

loop is dynamic, strong and duck typed. in other words, it enforces strong type safety over expressions and functions, and these are resolved at runtime.

Dabei werden Loop-Programme On-the-Fly direkt in JVM-Bytecode kompiliert. Eine gute Performance soll deshalb gegeben sein.

Loop also emphasizes performance over purity or theoretical considerations. [.] Programs (or scripts) are compiled on-the-fly to optimized JVM bytecode and therefore suffer no performance penalty to interpretation; all while maintaining the quick, edit-and-run responsiveness of interpreted code.

Loop steht unter der MIT-Open-Source-Lizenz auf GitHub zur Verfügung. Zum Entwickeln muss die Loop-Distribution unter https://github.com/dhanji/loop/tree/master/dist heruntergeladen werden, benötigt wird außerdem Java 1.6 oder höher. Mitgeliefert wird eine Loop Shell, von der aus einfache Ausdrücke und Funktionen ausgeführt werden können.

Auf der Loop-Roadmap steht nun die Entwicklung einer Grafik-Bibliothek und eines kompakten Web-Frameworks. Außerdem soll die Shell weiter verfeinert werden.

Nehmen Sie sich ruhig die Zeit, einige der Beispiele auf der Projektseite durchzuspielen. Dabei sollte man im Hinterkopf behalten, dass es sich hier bisher um ein Forschungsprojekt handelt – eine Sprache also, die ihre Industrie-Tauglichkeit noch nicht unter Beweis gestellt hat.

Was halten Sie von Loop?

Geschrieben von
Hartmut Schlosser
Kommentare

Schreibe einen Kommentar

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