Beliebte Suchanfragen

Cloud Native

DevOps

IT-Security

Agile Methoden

Java

//

Auftragsentwicklung mit Clojure?

17.12.2013 | 4 Minuten Lesezeit

Beating the Averages “ betitelte Paul Graham im Jahr 2001 seinen berühmten Artikel über die Vorteile von Lisp in der Produktentwicklung. 2013, 55 Jahre nach der Erfindung dieser Gattung von Programmiersprachen, ist Clojure , ein Lisp für die Java Virtual Machine, in aller Munde. Ob Startup  oder Produktteam, Forschungsinstitut, Bank oder Zeitungshaus, Clojure scheint einen guten Eindruck zu hinterlassen.

Trotzdem spielt diese seit 2007 aktiv entwickelte Programmiersprache hierzulande im Beratungsgeschäft beziehungsweise in der Auftragsentwicklung praktisch keine Rolle. Warum und wie wir das ändern möchten, darum soll es in diesem Artikel gehen.

Rahmenbedingungen

Um aber grundsätzlich als Berater eine Programmiersprache mit gutem Gewissen empfehlen zu können, müssen einige Voraussetzungen erfüllt sein. Lassen Sie uns vor diesem Hintergrund einen Blick auf Clojure werfen:

Sieht man von dem Verbreitungsgrad ab (dazu mehr im letzten Abschnitt), sind so die wichtigsten Risiken hinsichtlich des Einsatzes einer neuen Technologie adressiert.

Vorteile

Es würde den Rahmen des Artikels sprengen, im Detail auf alle relevanten Sprachfeatures einzugehen. Stattdessen möchte ich an dieser Stelle die Aspekte von Clojure hervorheben, die es aus meiner Sicht sowohl für Kunden wie auch für Anbieter zu einer ausgezeichneten Programmiersprache für die Auftragsentwicklung machen:

  • Clojure ist verhältnismäßig leicht zu erlernen. Die Anzahl der Syntaxelemente ist erheblich geringer als in funktionell vergleichbaren Sprachen. Die Syntax selbst ist sehr regelmäßig. Die Möglichkeit der interaktiven Entwicklung im REPL vereinfacht den Zugang zur Programmiersprache und zu Bibliotheken erheblich.
  • Clojure isoliert Zustand und macht Zustandsmanipulation explizit. Dadurch entfällt in der Praxis eine ganze Kategorie häufig auftretender Softwarefehler.
  • Die interaktive Natur der Softwareentwicklung mit Clojure verkürzt Feedback-Zyklen auf allen Ebenen. Dadurch eignet sich die Sprache insbesondere für Rapid Prototyping und agile Vorgehensweisen.
  • Clojure ist ausdrucksstark. Idiomatischer Clojure-Code kann im Vergleich zu Java-Code desselben Funktionsumfangs um eine Größenordnung weniger Lines of Code  haben. Während Lines of Code keine an sich sinnvolle Metrik ist, ist die Diskrepanz hier so groß, dass sich daraus ein realer Wartungsvorteil ergibt.
  • Die Clojure-Community legt größten Wert auf das Konzept der „Einfachheit „. Diese Haltung spiegelt sich in idiomatischem Code, Architekturansätzen, vielen Bibliotheken und der generellen Ausrichtung der Sprach-Weiterentwicklung wieder und hat einen positiven Effekt auf Wartbarkeit und Robustheit.
  • Als funktionale Programmiersprache motiviert Clojure die Verwendung nebeneffektfreier Funktionen. Solche reinen Funktionen sind sowohl leichter testbar als auch einfacher verständlich als objektorientierter Code mit vergleichbarem Funktionsumfang.
  • Clojure eignet sich durch seine speziellen Datenstrukturen und das Konzept des Software Transactional Memory besonders für die im Bereich der serverseitigen Software häufig benötigte Abbildung nebenläufiger Prozesse.

In der Kombination mit den zuvor genannten Rahmenbedingungen ergibt sich das Bild einer Programmiersprache, die schlüssige Antworten auf wichtige Fragen wie Produktivität, Lernkurve und Wartungskosten geben kann.

Perspektiven

Das aus meiner Sicht größten Hindernis für die weitere Verbreitung von Clojure ist das im Vergleich mit Java geringe Angebot an Entwicklungskapazitäten. Während sich die meisten anderen Befürchtungen für den Einsatz der Sprache objektiv adressieren lassen, kann der Eindruck eines Anbietermarkts nicht ohne weiteres ausgeräumt werden. An dieser Stelle möchten wir bei codecentric ansetzen:

  • Wir unterstützen die Clojure-Community in Deutschland (z.B. durch Sponsoring auf Konferenzen, Gründung lokaler User Groups und die Unterstützung großer Open-Source-Projekte wie ClojureWerkz ).
  • Wir bauen gezielt Clojure-Kapazitäten auf, um für die Projekte unserer Kunden bereit zu sein, sobald Clojure für sie eine Option wird.
  • Im Rahmen unsere Schulungen und durch Vorträge auf Konferenzen vermitteln wir praktische Kenntnisse in der funktionaler Programmierung mit Clojure.

Wenn Sie Interesse an dem Thema haben, würden wir uns freuen, mit Ihnen ins Gespräch zu kommen. Hinterlassen Sie hier einen Kommentar oder schreiben Sie uns unter clojure@codecentric.de .

Beitrag teilen

Gefällt mir

0

//

Weitere Artikel in diesem Themenbereich

Entdecke spannende weiterführende Themen und lass dich von der codecentric Welt inspirieren.

//

Gemeinsam bessere Projekte umsetzen.

Wir helfen deinem Unternehmen.

Du stehst vor einer großen IT-Herausforderung? Wir sorgen für eine maßgeschneiderte Unterstützung. Informiere dich jetzt.

Hilf uns, noch besser zu werden.

Wir sind immer auf der Suche nach neuen Talenten. Auch für dich ist die passende Stelle dabei.