3 Punkte von GN⁺ 12 일 전 | 6 Kommentare | Auf WhatsApp teilen
  • Veröffentlichung eines einstündigen offiziellen Dokumentarfilms darüber, wie Clojure zur Infrastruktursprache globaler Fintechs wurde
  • Verfolgt und stellt Clojures einzigartige Ursprünge, die werteorientierte Community und den Einfluss auf das Denken über Software vor
  • YouTube-Link: Wie das Pet Project eines Programmierers unsere Sicht auf Software verändert hat
  • In den Shownotes sind die zentralen Forschungsarbeiten, Bücher, Vorträge und Unternehmensbeispiele zusammengefasst, die Clojure geprägt haben
  • Ebenfalls vorgestellt werden Laufzeiten wie Clojure, ClojureScript, ClojureCLR sowie Erweiterungsprojekte wie Babashka, Jank, ClojureDart
  • Die offizielle Seite dient als umfassender Hub des Clojure-Ökosystems, von AI-Tools, Data Science, Editor-Integrationen bis zu Community-Kanälen

Überblick über die Dokumentation

  • Die Clojure-Dokumentation behandelt, wie aus Rich Hickeys zweijährigem Sabbatical und einer hartnäckigen Idee etwas wurde, das heute den Engineering-Stack eines der größten Fintech-Unternehmen der Welt antreibt
  • Wichtige Personen wie Rich Hickey, Alex Miller und Stuart Halloway treten auf und untersuchen Clojures unkonventionelle Ursprünge, die werteorientierte Community und den Einfluss auf das Denken über Software
  • Die Dokumentation wurde mit Unterstützung von Nubank produziert

Shownotes

  • Grundlegende Forschungsarbeiten

    • Out of the Tarpit (2006) — Ben Moseley & Peter Marks, weist darauf hin, dass veränderlicher Zustand eine Hauptursache für akzidentelle Komplexität in Software ist
    • Ideal Hash Trees — Phil Bagwell, Forschung zu Hash Array Mapped Tries (HAMTs), die die persistenten Datenstrukturen von Clojure direkt inspirierte
    • Composable Memory Transactions (2005) — Tim Harris u. a., stellte das Konzept von Software Transactional Memory (STM) vor und beeinflusste damit Clojures Nebenläufigkeitsmodell
    • Paper Bibliography — von Michael Fogus zusammengestellte Liste der Arbeiten, auf die sich Rich Hickey bei der Entwicklung von Clojure stützte
  • Einflussreiche Bücher

    • On Lisp — Paul Graham, ein Standardwerk zu fortgeschrittenen Lisp-Techniken, kostenlos online verfügbar
    • Programming Clojure (4th ed.) — von Alex Miller, Stuart Halloway und Aaron Bedra, die erste Auflage erschien zusammen mit Clojure 1.0
    • The Joy of Clojure — von Michael Fogus & Chris Houser
  • Wichtige Vorträge von Rich Hickey

    • Simple Made Easy (2011) — berühmter Vortrag, der den Unterschied zwischen "simple" und "easy" definiert
    • Clojure at LispNYC (2007) — die erste öffentliche Vorstellung von Clojure
    • Are We There Yet? (2009) — Analyse von Clojures Zustandsmodell und dem Zeitbegriff in der Programmierung
    • Hammock Driven Development (2010) — betont den Ansatz, Probleme tiefgehend zu durchdenken, bevor man Code schreibt
    • The Value of Values (2012) — betont die Bedeutung unveränderlicher Werte (immutable values)
    • Writing Datomic in Clojure (2012) — erklärt, warum Datomic in Clojure geschrieben wurde
    • Effective Programs - 10 Years of Clojure (2017) — Rückblick auf zehn Jahre Clojure, die Weiterentwicklung und die Priorisierung von Funktionen anhand realer Probleme
    • Talk Transcripts — Archiv mit Mitschriften von Vorträgen von Rich Hickey und der Community
    • Rich Hickey Talks — Playlist mit Richs Vortragsvideos
  • Essays von Paul Graham

  • Wichtige Unternehmen und Projekte

    • Cognitect — Beratungsunternehmen, das Clojure über lange Zeit betreut hat
    • Nubank — die größte unabhängige Digitalbank der Welt, betreibt ihre Kerninfrastruktur mit Clojure und Datomic und treibt seit der Übernahme von Cognitect im Jahr 2020 die Clojure-Entwicklung voran
    • Datomic — verteilte Datenbank auf Basis unveränderlicher Fakten (immutable facts), entworfen von Rich Hickey und Cognitect
  • Community- und Archivmaterialien

    • Java.next Blog Series (2008) — Blogserie von Stuart Halloway zu Trends bei JVM-Sprachen
    • Clojure IRC Log Archive — archivierte Aufzeichnungen des frühen Clojure-IRC-Kanals
    • Clojure Etiquette — Richtlinien zur Community-Etikette, hervorgegangen aus Richs Beiträgen in der Mailingliste

Clojure-Dialekte und Laufzeiten

  • Kern

    • Clojure — läuft auf der JVM, mit offiziellem Einstiegsleitfaden und dem kostenlosen Einführungsbuch Brave Clojure
    • ClojureScript — kompiliert zu JavaScript und unterstützt Frontend-Bibliotheken wie Reagent und Re-frame
    • ClojureCLR — Clojure für die .NET CLR
  • Erweiterungen

    • Babashka — ermöglicht schnelles Scripting ohne JVM-Startzeit
    • Jank — nativer Compiler mit LLVM als Ziel
    • ClojureDart — für die Entwicklung mobiler Apps auf Basis von Flutter
    • Squint / Cherry — ClojureScript-Varianten, die zu ES-Modulen kompilieren
    • Other Clojure-like projects — bietet eine Liste weiterer ähnlicher Projekte
  • Data Science

    • libpython-clj — ruft Python-Bibliotheken wie NumPy, pandas, scikit-learn direkt aus Clojure auf
    • Noj — ein von SciCloj entwickeltes, Clojure-natives Data-Science-Toolkit, das DataFrames, Visualisierung und Machine Learning integriert
    • Tablecloth — verbindet Python-Integration mit Clojure-DataFrames
  • Clojure und AI

    • ECA (Editor Code Assistant) — Werkzeug zur Unterstützung beim Code-Editing
    • Backseat Driver — Clojure-Tool für Copilot
    • ClojureMCP — MCP-Server, der AI-Assistenten wie Claude, Codex und Gemini mit dem REPL verbindet
    • MCP-nREPL — minimaler MCP-Server auf Basis von Babashka, der Coding-Agenten Zugriff auf nREPL bietet
    • clojure-mcp-light — leichtgewichtiges CLI-Tool für LLM-Coding-Assistenten
    • #ai-assisted-coding (Clojurians Slack) — aktiver Community-Kanal zu AI und Clojure-Entwicklung

Einstieg

  • Das komplette Erlebnisoffizieller Leitfaden mit Installationsvideos für macOS, Linux und Windows, empfohlen wird Calva in VS Code
  • Der schnellste WegBabashka installieren und sofort mit dem Scripting beginnen, ohne JVM-Setup
  • Web/Frontend — Einstieg mit ClojureScript + Shadow CLJS
  • Mobile Apps — Flutter-Apps mit ClojureDart entwickeln
  • Für Python-Nutzer — Python-Bibliotheken direkt über libpython-clj aufrufen
  • EditorenCalva unterstützt in VS Code REPL, strukturelles Editieren und AI-Integration (Backseat Driver), siehe Editor-Leitfaden

Glossar

  • Lisp — Sprachfamilie, die Code als verschachtelte, von Klammern umgebene Listen darstellt; Clojure ist ein Lisp-Dialekt
  • REPL — Read-Eval-Print Loop, eine interaktive Sitzung, die Ausdrücke liest, auswertet und Ergebnisse ausgibt
  • Funktionale Programmierung — Programmierstil, der veränderlichen Zustand und Seiteneffekte minimiert und funktionszentriert aufgebaut ist
  • Wert (Value) — Daten, die nach ihrer Erzeugung nicht verändert werden; Clojure verwendet standardmäßig unveränderliche Werte
  • Persistente Datenstruktur (Persistent Data Structure) — Sammlung, die bei Änderungen frühere Versionen bewahrt; "persistent" bedeutet hier Versionserhalt
  • Akzidentelle Komplexität (Accidental Complexity) — Komplexität, die nicht aus dem Problem selbst entsteht, sondern durch Werkzeuge oder Designentscheidungen
  • STM (Software Transactional Memory) — Nebenläufigkeitsmodell, das Änderungen an gemeinsamem Zustand über Transaktionen statt über Locks koordiniert
  • Hosted Language — Sprache, die nicht auf einer eigenen Laufzeit, sondern auf einer bestehenden Plattform läuft; Clojure auf der JVM, ClojureScript auf JS, ClojureCLR auf .NET

Clojure folgen und Community

  • Offizielle Kanäle auf YouTube, Reddit, Slack, LinkedIn usw.
  • Clojure/Conj Conference 2026 — geplant vom 30. September bis 2. Oktober 2026 in Charlotte, North Carolina, USA

6 Kommentare

 
runableapp 11 일 전

Clojure gibt es schon ziemlich lange, daher frage ich mich, warum jetzt wieder darüber gesprochen wird.
Ich habe in den frühen Tagen von Clojure einmal ein Buch dazu rezensiert. Später habe ich einige Unternehmen gesehen, die versucht haben, es einzusetzen, aber das Fazit war, dass es für den Einsatz in Unternehmen nicht einfach ist. Dann schien es in Vergessenheit zu geraten, und ich frage mich, warum es jetzt wieder zum Thema wird.

Ich habe Java seit den Anfängen lange verwendet, aber die JVM wird meiner Meinung nach heute der Zeit nicht mehr gerecht. Sie wird zwar immer noch viel genutzt, weil in Großunternehmen bereits viel Software in Java entwickelt wurde, weil es (in den USA) viele indische Fachkräfte gibt, die überwiegend Java beherrschen, und weil Java von der Highschool bis zur Universität gelehrt wird. Ich mag Lisp, aber im obigen Artikel konnte ich nicht erkennen, welche Vorteile einer ziemlich nischigen Sprache auf einer aus meiner Sicht alternden JVM-Architektur im KI-Zeitalter nun wieder neue Aufmerksamkeit verschaffen.

 
chebread 11 일 전

Ich habe noch nie richtig eine funktionale Programmiersprache gelernt und überlege, mit Clojure anzufangen. Wie sollte ich am besten lernen? Ich freue mich über viele Ratschläge von den Entwicklerinnen und Entwicklern.

 
runableapp 11 일 전

Nach meiner Erfahrung und dem Fazit vieler anderer galt lange als der richtige Weg, funktionale Sprachen anhand einer rein funktionalen Sprache zu lernen.
Das war eine Aussage aus der Zeit, als funktionale Sprachen aufkamen und dann starkes Interesse auf sich zogen, und ich konnte dem zustimmen. Ich selbst habe in der Anfangszeit von Erlang damit gelernt, und das war damals eine ziemlich schockierende und erstaunliche Erfahrung.

 
chebread 11 일 전

Dann stellt sich die Frage: Wie habt ihr eine rein funktionale Programmiersprache gelernt? Ich habe Programmiersprachen (C, Go, Python usw.) bisher mit Fachbüchern + Side Projects gelernt; kann man bei funktionalen Programmiersprachen ebenfalls so vorgehen?

 
runableapp 11 일 전

Das ist sicher von Person zu Person unterschiedlich, aber ich denke, dass die meisten beim Lernen im Computerbereich auf die von Ihnen beschriebene Weise vorgehen. Heutzutage gibt es auch die Möglichkeit, per Video zu lernen, daher sollte man die Lernmethode wählen, die am besten zu einem passt.

 
GN⁺ 12 일 전
Hacker-News-Meinungen
  • Clojure war das Beste, was meiner Karriere je passiert ist
    Dank dieser Sprache hat sich mein Gehalt verdoppelt, und ich konnte in eine stabilere Branche wechseln
    Die inklusive Atmosphäre auf der Heart of Clojure-Konferenz war wirklich beeindruckend. Die Community ist noch immer aktiv, und besonders die Leidenschaft der Jank-Community, die einen Clojure-Dialekt für Low-Level-Arbeit entwickelt, ist bemerkenswert
    Das Problem ist, dass die meisten Unternehmen Austauschbarkeit von Entwicklern höher bewerten als die Stabilität oder Authentizität einer Sprache. Am Ende sinkt dadurch die Qualität, und es entsteht ein Teufelskreis, in dem Firmen sich selbst ruinieren, indem sie versuchen, alles durch AI zu ersetzen
    Was mich beim kommerziellen Einsatz von Clojure überrascht hat, war, dass viele Entwickler weder die Philosophie der Sprache noch die Vorträge von Rich Hickey oder überhaupt den Umgang mit dem REPL kennen. Trotzdem waren sie in der Position, Clojure-Codebasen zu betreuen, und das fand ich fragwürdig

    • Das ist auch etwas, das mir immer wieder im Kopf bleibt. Unter Clojure-Entwicklern gibt es viel zu viele Leute, die ständig den JVM-Prozess neu starten statt ein REPL zu nutzen
      Genau wegen der kurzen Feedback-Schleife bin ich zu Clojure gewechselt; wenn man die nicht nutzt, verstehe ich nicht, warum man diese Sprache überhaupt verwendet
  • Dank Clojure konnte ich in den letzten zehn Jahren als Solo-Gründer ein nachhaltiges Geschäft betreiben
    Weil Client und Server den Großteil der Business-Logik teilen, ließ sich selbst eine komplexe Codebasis leicht pflegen
    Vor allem aber sind Sprache und Umfeld auf Stabilität ausgerichtet, sodass einem nicht wie bei anderen Sprachen alle paar Jahre der Boden unter den Füßen weggezogen wird
    Clojure ist weder neu noch glänzend, aber ein verlässlicher Begleiter auf lange Sicht

  • Früher habe ich jeden Tag mit Clojure programmiert und erinnere mich daran, bei Clojure/Conj mit Rich Hickey zu Abend gegessen zu haben
    Auch mein erstes Startup war komplett in Clojure gebaut, und ich war ein früher Experimentierer, der Clojure zu JS kompilierte und auf Lambda laufen ließ, als AWS noch kaum Services hatte
    Ich freue mich immer noch darauf, mir die zugehörigen Videos anzusehen

    • Mich würde interessieren, welche Sprache du heute verwendest und wie du inzwischen über Clojure denkst
    • Ich würde generell gern wissen, wie du Clojure heute siehst
  • Ich nutze Clojure seit 2013, und es ist eine Sprache, die mein Leben sehr positiv beeinflusst hat
    Ich bin ein eher unorthodoxer Nutzer; der Großteil meiner künstlerischen Arbeit wurde mit Clojure geschaffen
    Auch beim Führen eines Startups hat mir Clojure geholfen, Burnout zu vermeiden
    Die Community-Arbeit war ebenfalls eine große Freude, und ich bin dankbar für die Hingabe so vieler Menschen

    • Deine Website ist wirklich wunderschön, und auch deine Arbeiten sind beeindruckend
  • Clojure ist eine großartige Sprache mit einem großartigen Ökosystem
    Ich habe in der Anfangszeit an Richs Projekt gespendet und einige Jahre mit Clojure-Entwicklung Geld verdient
    Heute nutze ich es nicht mehr oft, aber noch vor zwei Stunden hatte ich Spaß daran, Beispiele aus einem alten Clojure-Buch zu aktualisieren

    • Mich würde interessieren, warum du Clojure heute seltener nutzt. Liegt es an der Jobsituation?
      Und hältst du Clojure für geeignet für ML/AI-Anwendungen? Die Interop mit Python ist doch gut, warum wird es trotzdem nicht stärker genutzt?
  • Auf der JVM ist Clojure meine liebste alternative Sprache
    Es steht in der Lisp-Tradition, und gleichzeitig finde ich die Philosophie attraktiv, die Host-Plattform zu umarmen, statt großspurig zu behaupten, man werde die JVM neu erfinden

    • Früher fand ich diesen Ansatz belastend, aber heute denke ich, dass das einer der Gründe ist, warum Clojure sich als Nischensprache etabliert hat
      Zig verfolgt einen ähnlichen Ansatz, und ich habe das Gefühl, dass genau diese Integrationsphilosophie entscheidend für Akzeptanz und Praxistauglichkeit ist
  • Wirklich großartig. Schade nur, dass borkdude nicht dabei ist

    • Stimmt, es ist schade, dass Personen aus Europa fehlen. Metosin, Juxt, Borkent, Gaiwan (Arne), Flexiana, Peter Strömberg (Calva), Dustin Getz (hyperfiddle/electric), Christophe Grand (ClojureDart), Bojidar (CIDER), Renzo und viele weitere großartige Leute gäbe es noch
  • Der Ausdruck „verlässlicher Begleiter auf lange Sicht“ von jwr ist mir im Gedächtnis geblieben
    Die Unternehmen, bei denen ich gearbeitet habe und die nur dem Neuen hinterherliefen, haben am Ende mehr Zeit mit Migrationen verbracht
    Stabilität klingt vielleicht langweilig, ist aber der einzige Weg, wie kleine Teams langfristig überleben können

  • Ich habe Clojure gern genutzt, aber der Großteil meiner Arbeit erfordert Interaktion mit der Sprache C, daher war es schwer, es als Hauptsprache zu verwenden

    • Ein Blick auf Janet könnte sich lohnen. Nicht ganz so mächtig wie Clojure, aber hervorragend für Prototyping und Scripting
    • Auch Jank ist interessant. Es ist noch früh, zielt aber auf C/C++-Interop ab
    • Coffi baut auf dem C-FFI von Java 22 (Project Panama) auf und macht Bindings zu C viel angenehmer
    • Ich interagiere ebenfalls viel mit C/C++, aber heutzutage ist es mit Claude-generierten Project-Panama-Wrappern und einer daraufgesetzten Clojure-Schicht ziemlich gut machbar
  • Ich wusste nicht, dass Datomic jetzt lizenzkostenfrei ist. Früher war es mir zu teuer, aber jetzt finde ich es interessant

    • Genau, und Datomic hat mehrere Datalog-Datenbanken auf Clojure-Basis inspiriert
      Zum Beispiel: Datalevin, Datahike, Asami
      XTDB gibt es auch, aber es hat Datalog aufgegeben und geht in eine andere Richtung
      Es gibt auch eine Vergleichsseite: Clojurelog (etwas veraltet)