Clojure 1.7 mit Transducers und Reader Conditionals veröffentlicht

Mit den Neuerungen in der Programmiersprache soll es Entwicklern unter anderem leichter fallen, portablen Code zu schreiben, der mit geringen Änderungen auf unterschiedlichen Clojure-Plattformen läuft.

In Pocket speichern vorlesen Druckansicht
Clojure 1.7 mit Transducers und Reader Conditionals veröffentlicht
Lesezeit: 2 Min.
Von
  • Julia Schmidt

Die Version 1.7 des 2007 vorgestellten Lisp-Dialekts Clojure steht ab sofort zum Download bereit. Als größte Neuerungen der Veröffentlichung lassen sich die zusätzlich eingeführten Transducer und Reader Conditionals festmachen. Unter ersteren versteht man zusammensetzbare algorithmische Transformationen, die vom Kontext der Input- und Output-Quellen unabhängig sind. Dadurch lassen sie sich in unterschiedlichen Prozessen einsetzen.

Reader Conditionals hingegen sollen eine Möglichkeit geben, portablen Code zu verfassen, der mit nur kleinen Änderungen auf mehreren Plattformen läuft. Ein Beispiel für diesen Fall wären Bibliotheken, die sich sowohl in Clojure- als auch in ClojureScript-Anwendungen einsetzen lassen. Für den Code, der auf den unterschiedlichen Plattformen identisch sein soll, haben die Entwickler das Dateiformat *.cljc eingeführt. In derartigen Dateien lässt sich dann mit den Reader Conditionals Code definieren, der nur verwendet wird, wenn bestimmte Features, die eine Plattform kennzeichnen, auffindbar sind. Nähere Informationen lassen sich der Auflistung der Änderungen auf GitHub entnehmen.

Darüber hinaus gab es unter anderem noch Änderungen bei der Konstruktion von Schlüsselwörtern und Symbolen, die sich positiv auf die Performance auswirken sollen. Weitere Verbesserungen in Sachen Geschwindigkeit ließen sich wohl auch durch neue Implementierungen der reduce()- oder iterator()-Pfade in einigen Funktionen erzielen. Beim Wechsel auf die neue Version ist generell zu beachten, dass es einige Inkompatibilitäten zur Vorgängerin gibt, etwa beim Einsatz von Java-Iteratoren in Kombination mit Sequenzen. Entsprechende Hinweise sind ebenfalls im Change-Dokument nachzulesen.

Clojure ist eine funktionale Programmiersprache, die auf der Java Virtual Machine läuft. Zudem gibt es mit clojure-clr und ClojureScript Implementierungen, die entsprechend die Common Language Runtime (CLR) und JavaScript als Zielplattform nutzen. Der Lisp-Dialekt zeichnet sich unter anderem durch die eingebaute Unterstützung der nebenläufigen Programmierung aus.

Siehe dazu auch auf heise Developer:

(jul)