© Excellent backgrounds/Shutterstock.com
Java Magazin
Status quo und Ausblick auf die funktionale JVM-Sprache

Clojure - Quo vadis?

Clojure ist der erste Lisp-Abkömmling, der auf der JVM basiert. Im Gegensatz zu anderen JVM-Programmiersprachen ist Clojure komplett funktional und enthält als integralen Sprachbestandteil Konstrukte, die die Erstellung von nebenläufigem Code vereinfachen. Dieser Artikel geht auf die wichtigsten und interessantesten Änderungen der letzten Monate ein, im Speziellen auf die Ende März veröffentlichte Version 1.6.0.

Andre Steingress


Was Sie aus Prolog, Clojure, Erlang & Node.js für den Mainstream lernen können

Spätestens nach der Einführung des x-ten Sprachfeatures der Haus-und-Hof-Programmiersprache stellt sich die Programmiererin folgende Frage: Gibt es denn keine Sprache, die mit der mindestmöglichen Anzahl von Sprachmerkmalen ihr Auskommen findet, auf diesen aufbaut, anstatt nach und nach Konzepte in die Sprache einzuführen und in vorhandene Schnittstellen zu integrieren? Eine der möglichen Antworten wurde bereits vor etwa fünfzig Jahren am Massachusetts Institute of Technology (MIT) gefunden. John McCarthy ist der gedankliche Vater von Lisp. Mit seinen Ausführungen über das so genannte „Lambda-Kalkül“ legte er die mathematische Basis für eine der beiden bis dato am längsten in der Praxis existierenden Programmiersprachen. Es gibt kein „reines“ Lisp. Vielmehr gibt es unterschiedliche Varianten, die Lisp-Dialekte. Die bekanntesten sind Common Lisp und Scheme. Im Gegensatz zum Aufbau europäischer Informatikstudien hat Lisp im amerikanischen Universitätsumfeld einen fixen Platz in der Ausbildung neben Java, C, C++ und den anderen üblichen Verdächtigen.

Clojure ist ein seit 2007 bestehender Lisp-Dialekt. Der Begriff „Clojure“ soll auf Closures, Java und Lisp anspielen. „Clojure“ dient nicht nur als reiner Bezeichner für die Programmiersprache, sondern umfasst auch die aus mehreren Komponenten bestehende Laufzeitumgebung. Wichtiger Bestandteil ist dabei die REPL (engl. Read-Eval-Print Loop), ein einfaches konsolenähnliches Interface, das die schnelle Ausführung von Clojure-Code erlaubt. Die Laufzeitumgebung setzt dabei auf der JVM auf, generiert also an bestimmten Stellen JVM-kompatiblen Bytecode und kann somit in (bestehenden) Java-Umgebungen ausgeführt werden.

Clojure 1.6.0 setzt auf JDK 6 auf (1.5.x war mit JDK 5 kompatibel). Clojure-Programme müssen daher mindestens mit dem JRE 6 ausgeführt werden.

LIStProcessing

Lisp steht für LIStProcessing, also Listenverarbeitung. Die Liste hat dabei neben der Verwendung als Datenstruktur in herkömmlichen Java-Programmen (man denke an die java.util.ArrayList) eine besondere Stellung. Listen werden verwendet, um den eigentlichen Code zu formulieren. Wenn man so will, besteht jedes Programm aus einer Menge von Codelisten. Eine Liste repräsentiert zur Laufzeit einen Funktionsaufruf. Damit sind nicht nur Aufrufe im herkömmlichen Sinne gemeint. Clojure ist komplett funktional und verwendet Funktionen beispielsweise auch, um Variablen zu defini...

Java Magazin
Status quo und Ausblick auf die funktionale JVM-Sprache

Clojure - Quo vadis?

Clojure ist der erste Lisp-Abkömmling, der auf der JVM basiert. Im Gegensatz zu anderen JVM-Programmiersprachen ist Clojure komplett funktional und enthält als integralen Sprachbestandteil Konstrukte, die die Erstellung von nebenläufigem Code vereinfachen. Dieser Artikel geht auf die wichtigsten und interessantesten Änderungen der letzten Monate ein, im Speziellen auf die Ende März veröffentlichte Version 1.6.0.

Andre Steingress


Was Sie aus Prolog, Clojure, Erlang & Node.js für den Mainstream lernen können

Spätestens nach der Einführung des x-ten Sprachfeatures der Haus-und-Hof-Programmiersprache stellt sich die Programmiererin folgende Frage: Gibt es denn keine Sprache, die mit der mindestmöglichen Anzahl von Sprachmerkmalen ihr Auskommen findet, auf diesen aufbaut, anstatt nach und nach Konzepte in die Sprache einzuführen und in vorhandene Schnittstellen zu integrieren? Eine der möglichen Antworten wurde bereits vor etwa fünfzig Jahren am Massachusetts Institute of Technology (MIT) gefunden. John McCarthy ist der gedankliche Vater von Lisp. Mit seinen Ausführungen über das so genannte „Lambda-Kalkül“ legte er die mathematische Basis für eine der beiden bis dato am längsten in der Praxis existierenden Programmiersprachen. Es gibt kein „reines“ Lisp. Vielmehr gibt es unterschiedliche Varianten, die Lisp-Dialekte. Die bekanntesten sind Common Lisp und Scheme. Im Gegensatz zum Aufbau europäischer Informatikstudien hat Lisp im amerikanischen Universitätsumfeld einen fixen Platz in der Ausbildung neben Java, C, C++ und den anderen üblichen Verdächtigen.

Clojure ist ein seit 2007 bestehender Lisp-Dialekt. Der Begriff „Clojure“ soll auf Closures, Java und Lisp anspielen. „Clojure“ dient nicht nur als reiner Bezeichner für die Programmiersprache, sondern umfasst auch die aus mehreren Komponenten bestehende Laufzeitumgebung. Wichtiger Bestandteil ist dabei die REPL (engl. Read-Eval-Print Loop), ein einfaches konsolenähnliches Interface, das die schnelle Ausführung von Clojure-Code erlaubt. Die Laufzeitumgebung setzt dabei auf der JVM auf, generiert also an bestimmten Stellen JVM-kompatiblen Bytecode und kann somit in (bestehenden) Java-Umgebungen ausgeführt werden.

Clojure 1.6.0 setzt auf JDK 6 auf (1.5.x war mit JDK 5 kompatibel). Clojure-Programme müssen daher mindestens mit dem JRE 6 ausgeführt werden.

LIStProcessing

Lisp steht für LIStProcessing, also Listenverarbeitung. Die Liste hat dabei neben der Verwendung als Datenstruktur in herkömmlichen Java-Programmen (man denke an die java.util.ArrayList) eine besondere Stellung. Listen werden verwendet, um den eigentlichen Code zu formulieren. Wenn man so will, besteht jedes Programm aus einer Menge von Codelisten. Eine Liste repräsentiert zur Laufzeit einen Funktionsaufruf. Damit sind nicht nur Aufrufe im herkömmlichen Sinne gemeint. Clojure ist komplett funktional und verwendet Funktionen beispielsweise auch, um Variablen zu defini...

Neugierig geworden?


   
Loading...

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang