Menü
Developer

Clojure 1.6 bringt Java-API

Der Lisp-Dialekt soll mit der neuen Schnittstelle anderen JVM-Sprachen unter anderem den Zugriff auf Clojures Namensraum ermöglichen. Version 1.6 soll darüber hinaus aber beispielsweise auch durch bessere Performance auffallen.

Von
vorlesen Drucken Kommentare lesen 39 Beiträge

Die funktionale Programmiersprache Clojure steht in Version 1.6 bereit. Sprachschöpfer Rich Hickey begann die Entwicklung des Lisp-Dialekts vor etwa sieben Jahren, nachdem seine Suche nach einer Lisp-ähnlichen, für Nebenläufigkeit entworfenen Sprache für die funktionale Programmierung auf einer etablierten Plattform erfolglos blieb. Das erste Major Release des in der Java Virtual Machine (JVM) laufenden Ergebnis' fand dann vor etwa fünf Jahren statt, die Zahl der mitwirkenden Entwickler hat sich mit der Zeit allerdings erhöht.

Größere Neuerungen in Clojure 1.6 umfassen unter anderem einige ergänzende Operationen (some?, if-some und when-some), eine Testfunktion für Variablen (clojure.test/test-vars) und den Bit-Operator unsigned-bit-shift-right (entspricht Javas >>>) in der Core-Bibliothek. Damit andere JVM-Sprachen auf Clojure zugreifen können, bietet die aktuelle Version mit clojure.java.api eine Schnittstelle, die es zum einen ermöglicht, den Namespace der Sprache zum Auffinden von Variablen zu nutzen, und zum anderen eine Methode zum Lesen von Daten mit dem spracheigenen edn-Reader bereitstellt.

Darüber hinaus lässt sich Map Destructuring mit :keys und :syms nun auch mit Schlüsseln und Symbolen durchführen, die einem bestimmten Namensraum angehören. Für bessere Sicherheit haben die Entwickler Clojure 1.6 zudem mit neuen Hashing-Algorithmen ausgestattet. Als Alphaversion markierte Sprachelemente wie defrecord und deftype sind ab dem aktuellen Release vollwertige Bestandteile.

Eine komplette Liste mit allen Änderungen, zu denen auch Performance-Verbesserungen und Überarbeitungen der Fehler-Nachrichten zählen, ist auf GitHub zu finden. Herunterladen kann man die Sprache auf der Webseite des Projekts. (jul)