Welcome luxlang!

Ein LISP für die JVM: Neue Funktionale Programmiersprache Lux vorgestellt

Hartmut Schlosser

Die Sprachenfamilie auf der Java Virtual Machine wird um ein Mitglied reicher: Unter dem Namen Lux entsteht derzeit ein neuer LISP-Dialekt, der sowohl von der JVM als auch von JavaScript-Interpretern verstanden werden soll.

Noch ist es allerdings nicht so weit. Lux befindet sich momentan noch im Beta-Stadium, die aktuelle Version 0.5.0 lässt sich auf der JVM und experimentell auch auf der Android-Plattform einsetzen. Lux-Erfinder Eduardo Julian bezeichnet die Sprache als statisch-typisiertes Lisp, das auf verschiedenen Plattformen wie die JVM und JavaScript-Umgebungen laufen soll.

Die JVM-Variante sei dabei schon recht stabil, auch die zugehörige Standard-Bibliothek schon stattlich ausgebaut, sodass einem probeweisen Einsatz nichts im Wege stehe:

Some of the features expected of the language have yet to be added (in particular, more compilers to support more platforms). Despite this, Lux has already come far enough in its development that it can be used to write a variety of programs that can run on the Java Virtual Machine, the first platform targeted by Lux.

Inspiriert ist Lux von Haskell, ML und Clojure. Dabei bezieht sich Haskell auf den funktionalen Programmierstil, ML auf das Modulsystem und Clojure auf die Syntax und das allgemeine Look&Feel. Auch der Compiler selbst ist in Clojure implementiert.

Neben der Unterstützung verschiedener Plattformen soll Lux neue Konzepte der Meta-Programmierung integrieren. Dazu gehören First-class Types, die zur Kompilierzeit konstruiert und untersucht werden können, monadische Makros mit Zugriff auf den Zustand des Compilers und Makrodefinitionen, die die Zusammensetzung und Interaktion zwischen verschiedenen Makros befördern sollen.

Wie genau die Umsetzung dieser Konzepte in Lux-Code aussieht, beschreibt Lux-Erfinder Eduardo Julian auf GitHub und in einem für Lux angelegten GitBook. Dort stellt Julian klar heraus, dass Lux nicht als akademische Spielerei abgetan werden sollte. Ziel ist es, fortgeschrittene funktionale Programmierelemente aus der Forschung in die alltägliche Entwickler-Praxis zu übertragen:

I must note that Lux is a practical language, meant for day-to-day usage by software engineers, instead of just research and experimentation by academics. It may seem unnecessary to point that out, but both Lisp-like languages and functional languages have earned a reputation for being academic in nature. While Lux’s design does involve a lot of advanced ideas in computer science, it’s with the intention of turning Lux into a powerful and effective tool for day-to-day software engineering.

Funktionale Programmierungauf der JVM wird also weiterhin vorangetrieben. Ob sich Lux indes neben Sprachen wie Scala, Clojure und Frege behaupten können wird, muss sich noch zeigen. Eine Community soll um das Forum auf https://groups.google.com/forum/#!forum/lux-programming-language entstehen. Auch für Dokumentation, Tutorials und vertiefenden Blog ist bereits gesorgt.

Wer Lux ausprobieren möchte, kann das über das Emacs Plug-in auf GitHub tun. Die Sprache selbst findet sich auf GitHub unter https://github.com/LuxLang/lux

 

 

Verwandte Themen:

Geschrieben von
Hartmut Schlosser
Hartmut Schlosser
Hartmut Schlosser ist Redakteur und Online-Koordinator bei Software & Support Media. Seine Spezialgebiete liegen bei Java-Enterprise-Technologien, JavaFX, Eclipse und DevOps. Vor seiner Tätigkeit bei S & S Media studierte er Musik, Informatik, französische Philologie und Ethnologie.
Kommentare

Schreibe einen Kommentar

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