Java Magazin - 07.2014 - Clojure


Preis: 9,80 €

Erhältlich ab:  Juni 2014

Umfang:  100

Autoren / Autorinnen: Arno Haase, Andre Steingress, Niklas Therning, Daniel Schneller, Lukas Pustina, Michael Dietz, Eberhard Wolff, Wolfgang Imig, Claudia Fröhling, Arne Limburg, Lars Röwekamp, Bernd Müller, Tobias Bayer, Achim Nierbeck, Raúl Kripalani, Matthias Rothe, Daniel Takai, Arne Limburg, Lars Röwekamp, Michael Müller, Silvia Schreier, Sven Ruppert, Stefan Ullrich, Felix Massem, Jan-Frederic Markert, Peter Hruschka, Gernot Starke, Peter Friese, Michail Mazo

Ob wir es wollen oder nicht: Funktionale Programmierung geht uns alle an. Ja, sogar die Java-Sprache, die mit Lambdas in Version 8 funktionale Features einführt, springt auf den Zug auf. Daneben gibt es eine ganze Reihe von Sprachen, die sich für die funktionale Programmierung anbieten. Der ThoughtWorks-Experte Neal Ford setzt sich seit Langem für die Nutzung funktionaler Sprachen ein. Seiner Meinung nach sind sie deterministisch und wichtig für den Kern der Softwarearchitektur. Je weiter es in Richtung User geht, desto weniger funktional darf es werden. Das ist die berühmte Pyramide, die Neal vor vielen Jahren definiert hatte.

Clojure wird in diesem Zusammenhang nicht zuletzt wegen des Concurrency-Arguments genannt. Clojure hat sogar das Lambda-Zeichen im Logo implementiert! JAX-Speaker und Clojure-Fan Stefan Tilkov nennt die Sprache „das beste seit geschnitten Brot“ (http://bit.ly/1mMlzzT ab Minute 17). Dabei ist Clojure im Gegensatz zu anderen JVM-Sprachen komplett funktional. Beispielsweise verwendet Clojure Funktionen auch, um Variablen zu definieren.

Dabei wirkt Clojure als Lisp-Dialekt vielleicht erst einmal befremdlich auf einen Java-Entwickler. Clojure- und Java-Syntax unterscheiden sich deutlich. Die Datenstrukturen umfassen unter anderem Nummern, Strings, Keywords, Listen, Vektoren und Maps. Datenstrukturen in Clojure sind persistent.

Der Code sind die Daten, und damit bleibt es auch so übersichtlich. Oder wie Clojure-Erfinder Rich Hickey einst sagte: „You’ve just seen it.“ Clojure verfügt über eine sehr mächtige Standardbibliothek, die das Leben des Entwicklers produktiv macht. An dieser Stelle möchte ich übrigens den hervorragenden Talk von Hickey auf der JAX US 2012 empfehlen (http://bit.ly/QYOELZ), in dem er von werteorientierter Programmierung in funktionalen Programmiersprachen spricht.

Unser aktuelles Titelthema soll Ihnen die Möglichkeit geben, eine eigene Meinung zu Clojure zu entwickeln. Los geht es mit einer Einführung in die Sprache, seinen Ursprüngen und der aktuellen Version im Artikel von Andre Steingress (Seite 14). Silvia Schreier analysiert daraufhin, wie gut sich Clojure mit Java verträgt und wann für Sie als Java-Entwickler der Einsatz von Clojure Sinn macht (Seite 24). Schließlich stellt Tobias Bayer das Projekt Korma vor, das Funktionen und Makros zu einer DSL für relationale Datenbanken kombiniert (Seite 32).

Funktional ohne Rücksicht auf Verluste?

Dass man die Nutzung funktionaler Programmierung auch kritisch hinterfragen muss, hat mein Kollege Hartmut Schlosser schon im Januar diskutiert (http://bit.ly/1nYbMsB). Zwar sei es wichtig, sein Repertoir um die funktionale Programmierung zu ergänzen, befreien könne uns das aber nicht von der Frage, welches Mittel am besten für welche Zwecke eingesetzt werden sollte.

Man sollte Dinge natürlich nicht nutzen, nur weil sie gerade hip oder cool sind, sondern weil sie die richtige Lösung zur richtigen Zeit für die vorliegende Anforderung sind. Sicherlich wird es jetzt nach dem großen Release im März auch Java-8-Anwendungen geben, die mit Lambdas experimentieren, obwohl sie sie eigentlich nicht brauchen. Bilden Sie sich eine Meinung und beurteilen Sie selbst, ob Clojure oder funktionale Programmierung im Allgemeinen für Sie Sinn macht.

In diesem Sinne wünsche ich viel Spaß bei der Lektüre

froehling_claudia_sw_cropped.tif_fmt1.pngClaudia Fröhling, Redakteurin

Website Twitter Google Xing

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