Le documentaire officiel sur Clojure
(clojure.org)- Publication d’un documentaire officiel d’une heure consacré à la manière dont Clojure est devenu le langage d’infrastructure de fintechs mondiales
- Présentation de ses origines singulières, de sa communauté centrée sur les valeurs et de son influence sur la manière de penser le logiciel
- Lien YouTube : Comment le projet personnel d’un programmeur a changé notre manière de penser le logiciel
- Les notes de l’émission récapitulent les articles de recherche fondamentaux, livres, conférences et cas d’entreprise qui ont servi de base à Clojure
- Présentation conjointe des runtimes comme Clojure, ClojureScript, ClojureCLR et de projets d’extension comme Babashka, Jank, ClojureDart
- La page officielle sert aussi de hub complet de l’écosystème Clojure, couvrant les outils IA, la data science, l’intégration aux éditeurs et les canaux communautaires
Aperçu du documentaire
- Le documentaire sur Clojure raconte comment deux années sabbatiques de Rich Hickey et une idée tenace ont fini par alimenter la stack d’ingénierie de l’une des plus grandes fintechs du monde
- On y retrouve des figures majeures comme Rich Hickey, Alex Miller et Stuart Halloway, avec une exploration des origines non conventionnelles de Clojure, de sa communauté centrée sur les valeurs et de son impact sur la pensée logicielle
- Le documentaire a été produit avec le soutien de Nubank
Notes de l’émission
-
Articles de recherche fondamentaux
- Out of the Tarpit (2006) — Ben Moseley & Peter Marks, souligne que l’état mutable est l’une des principales causes de la complexité accidentelle dans le logiciel
- Ideal Hash Trees — Phil Bagwell, travaux sur les Hash Array Mapped Tries (HAMTs) ayant directement inspiré les structures de données persistantes de Clojure
- Composable Memory Transactions (2005) — Tim Harris et al., introduction du concept de Software Transactional Memory (STM), qui a influencé le modèle de concurrence de Clojure
- Paper Bibliography — liste d’articles consultés par Rich Hickey lors du développement de Clojure, compilée par Michael Fogus
-
Ouvrages influents
- On Lisp — Paul Graham, ouvrage de référence sur les techniques Lisp avancées, disponible gratuitement en ligne
- Programming Clojure (4th ed.) — coécrit par Alex Miller, Stuart Halloway et Aaron Bedra, la 1re édition étant parue avec Clojure 1.0
- The Joy of Clojure — de Michael Fogus & Chris Houser
-
Principales conférences de Rich Hickey
- Simple Made Easy (2011) — conférence de référence qui définit la différence entre "simple" et "easy"
- Clojure at LispNYC (2007) — première présentation publique de Clojure
- Are We There Yet? (2009) — analyse du modèle d’état de Clojure et de la notion de temps en programmation
- Hammock Driven Development (2010) — met l’accent sur le fait de réfléchir profondément au problème avant d’écrire du code
- The Value of Values (2012) — souligne l’importance des valeurs immuables (immutable values)
- Writing Datomic in Clojure (2012) — explique pourquoi Datomic a été écrit en Clojure
- Effective Programs - 10 Years of Clojure (2017) — retour sur dix ans d’évolution de Clojure et sur la priorité donnée aux fonctionnalités axées sur la résolution de problèmes réels
- Talk Transcripts — archive des transcriptions de conférences de Rich Hickey et de la communauté
- Rich Hickey Talks — playlist de vidéos de conférences de Rich
-
Essais de Paul Graham
- Beating the Averages, Revenge of the Nerds et autres essais
-
Entreprises et projets majeurs
- Cognitect — société de conseil qui a maintenu Clojure pendant de nombreuses années
- Nubank — plus grande banque numérique indépendante au monde, exploite son infrastructure centrale avec Clojure et Datomic, et pilote le développement de Clojure depuis l’acquisition de Cognitect en 2020
- Datomic — base de données distribuée fondée sur des faits immuables (immutable facts), conçue par Rich Hickey et Cognitect
-
Ressources communautaires et archives
- Java.next Blog Series (2008) — série de billets de Stuart Halloway sur l’évolution des langages JVM
- Clojure IRC Log Archive — archive conservée du salon IRC des débuts de Clojure
- Clojure Etiquette — guide de bonnes pratiques communautaires issu d’un message de Rich sur la mailing list
Dialectes et runtimes de Clojure
-
Cœur
- Clojure — s’exécute sur la JVM, avec un guide officiel de démarrage et le livre d’introduction gratuit Brave Clojure
- ClojureScript — compilé en JavaScript, avec prise en charge de bibliothèques frontend comme Reagent et Re-frame
- ClojureCLR — version de Clojure exécutée sur le CLR de .NET
-
Extensions
- Babashka — permet un scripting rapide sans temps de démarrage JVM
- Jank — compilateur natif ciblant LLVM
- ClojureDart — pour le développement d’applications mobiles basées sur Flutter
- Squint / Cherry — variantes de ClojureScript compilées en modules ES
- Other Clojure-like projects — liste d’autres projets similaires
-
Data science
- libpython-clj — appelle directement des bibliothèques Python comme NumPy, pandas, scikit-learn depuis Clojure
- Noj — toolkit natif de data science pour Clojure développé par SciCloj, intégrant dataframes, visualisation et machine learning
- Tablecloth — combine l’interopérabilité Python et les dataframes Clojure
-
Clojure et l’IA
- ECA (Editor Code Assistant) — outil d’assistance à l’édition de code
- Backseat Driver — outil Clojure pour Copilot
- ClojureMCP — serveur MCP reliant des assistants IA et le REPL comme Claude, Codex et Gemini
- MCP-nREPL — serveur MCP minimal basé sur Babashka, offrant aux agents de code un accès à nREPL
- clojure-mcp-light — outil CLI léger pour assistants de code basés sur des LLM
- #ai-assisted-coding (Clojurians Slack) — canal communautaire actif autour de l’IA et du développement Clojure
Bien démarrer
- Expérience complète — guide officiel avec vidéos d’installation pour macOS, Linux et Windows, en utilisant Calva sous VS Code
- Le chemin le plus rapide — installer Babashka pour commencer immédiatement à faire du scripting, sans configuration JVM
- Web / frontend — démarrer avec ClojureScript + Shadow CLJS
- Applications mobiles — développer des apps Flutter avec ClojureDart
- Utilisateurs Python — appeler directement des bibliothèques Python avec libpython-clj
- Éditeurs — Calva prend en charge le REPL, l’édition structurelle et l’intégration IA (Backseat Driver) dans VS Code ; voir le guide des éditeurs
Glossaire
- Lisp — famille de langages qui représentent le code sous forme de listes imbriquées entourées de parenthèses ; Clojure est un dialecte de Lisp
- REPL — Read-Eval-Print Loop, session interactive qui lit une expression, l’évalue puis affiche le résultat
- Programmation fonctionnelle — style de programmation centré sur les fonctions, qui minimise l’état mutable et les effets de bord
- Valeur (Value) — donnée qui ne change pas après sa création ; Clojure utilise par défaut des valeurs immuables
- Structure de données persistante (Persistent Data Structure) — collection qui conserve les versions précédentes lors des modifications ; ici, "persistent" signifie préservation des versions
- Complexité accidentelle (Accidental Complexity) — complexité causée non par le problème lui-même, mais par les outils ou les choix de conception
- STM (Software Transactional Memory) — modèle de concurrence qui coordonne les changements d’état partagé via des transactions plutôt que des verrous
- Langage hébergé (Hosted Language) — langage qui s’exécute sur une plateforme existante plutôt que sur son propre runtime ; Clojure tourne sur la JVM, ClojureScript sur JS et ClojureCLR sur .NET
Suivre Clojure et sa communauté
- Présence sur des canaux officiels comme YouTube, Reddit, Slack et LinkedIn
- Clojure/Conj Conference 2026 — prévue du 30 septembre au 2 octobre 2026 à Charlotte, en Caroline du Nord, aux États-Unis
6 commentaires
Clojure existe depuis assez longtemps, donc je me demande pourquoi on reparle de Clojure aujourd’hui.
J’ai eu l’occasion de faire la critique d’un livre à ses débuts. Par la suite, j’ai vu quelques entreprises essayer de l’utiliser, mais la conclusion était que ce n’était pas facile à adopter en entreprise. Puis j’ai cru qu’il allait tomber dans l’oubli, alors je me demande pourquoi il revient dans les discussions.
J’utilise Java depuis ses débuts et depuis très longtemps, mais si la JVM reste encore largement utilisée, c’est parce que de nombreux logiciels déjà développés dans les grandes entreprises sont en Java, parce qu’aux États-Unis une grande partie de la main-d’œuvre indienne travaille surtout en Java, et parce qu’on l’enseigne du lycée jusqu’à l’université, entre autres raisons. Cela dit, à mon avis, ce n’est plus vraiment adapté à notre époque. J’aime Lisp, mais je n’ai pas trouvé dans le texte ci-dessus ce qui ferait ressortir, à l’ère de l’IA, les avantages qui remettent aujourd’hui en avant un langage très minoritaire reposant sur une JVM que je considère en déclin.
Je n’ai jamais vraiment appris un langage de programmation fonctionnelle comme il faut, donc je me demande si je devrais commencer par Clojure. Comment faudrait-il l’apprendre ? Je serais très reconnaissant pour tous vos conseils de développeurs.
D’après mon expérience et les conclusions de nombreuses personnes, l’approche de référence était d’étudier les langages fonctionnels à travers un langage purement fonctionnel.
C’était un discours apparu à l’époque où les langages fonctionnels émergeaient puis suscitaient un fort intérêt, et j’y adhérais. Pour ma part, j’ai étudié avec Erlang à ses débuts, et cela avait été à l’époque une expérience assez marquante et surprenante.
Dans ce cas, comment avez-vous appris un langage de programmation purement fonctionnel ? Jusqu’à présent, j’ai appris des langages de programmation (C, Go, Python, etc.) avec des livres techniques + des projets perso ; est-ce qu’il est aussi pertinent de suivre cette approche pour un langage de programmation fonctionnel ?
Cela dépend sans doute de chacun, mais j’ai l’impression que, pour l’apprentissage en informatique, presque tout le monde utilise la méthode que vous avez mentionnée. De nos jours, il y a aussi l’option d’étudier avec des vidéos, donc il faut choisir la méthode d’apprentissage qui vous convient.
Avis sur Hacker News
Clojure a été la meilleure chose qui soit arrivée dans ma carrière
Grâce à ce langage, mon salaire a doublé et j’ai pu rejoindre un secteur plus stable
L’atmosphère inclusive de la conférence Heart of Clojure était vraiment remarquable. La communauté est toujours active aujourd’hui, et je suis particulièrement impressionné par la passion de la communauté Jank, qui crée un dialecte de Clojure pour le travail bas niveau
Le problème, c’est que la plupart des entreprises accordent plus d’importance à la facilité de remplacement des développeurs qu’à la stabilité ou à l’authenticité du langage. Au final, cela dégrade la qualité et crée un cercle vicieux où elles tentent de tout remplacer par l’IA et finissent par saboter leur propre entreprise
Ce qui m’a surpris en utilisant Clojure dans un cadre commercial, c’est que beaucoup de développeurs ne connaissent ni la philosophie du langage, ni les conférences de Rich Hickey, ni même l’usage du REPL. Pourtant, ce sont eux qui se retrouvent à maintenir des bases de code Clojure, ce qui m’a toujours laissé perplexe
La raison même pour laquelle je suis passé à Clojure, c’était cette boucle de feedback rapide ; si on ne l’exploite pas, je ne vois pas pourquoi on utilise ce langage
Grâce à Clojure, j’ai pu faire tourner une entreprise durable en tant que fondateur solo ces dix dernières années
Comme le client et le serveur partageaient l’essentiel de la logique métier, même une base de code complexe restait facile à maintenir
Surtout, le langage et son environnement sont centrés sur la stabilité, donc je n’ai jamais eu cette impression de sol qui se dérobe sous mes pieds tous les quelques années comme avec d’autres langages
Clojure n’est peut-être pas un langage nouveau ou brillant, mais c’est un compagnon fiable sur le long terme
À une époque, j’écrivais du code en Clojure tous les jours, et je me souviens avoir dîné avec Rich Hickey à Clojure/Conj
J’ai aussi construit ma première startup entièrement en Clojure, et j’ai fait partie des premiers expérimentateurs à compiler Clojure en JS pour l’exécuter sur Lambda à l’époque où AWS n’avait encore que très peu de services
Rien que l’idée de regarder ces vidéos me réjouit encore aujourd’hui
J’utilise Clojure depuis 2013, et c’est un langage qui a eu une influence très positive sur ma vie
Je suis un utilisateur un peu atypique : la plupart de mon travail artistique a été réalisé en Clojure
Quand je dirigeais une startup, Clojure m’a aussi permis d’éviter le burn-out
Participer à la communauté a également été un immense plaisir, et je suis reconnaissant envers les innombrables personnes qui s’y investissent
Clojure est un excellent langage avec un excellent écosystème
Au début, j’ai même fait un don au projet de Rich, et j’ai gagné ma vie pendant quelques années grâce au développement en Clojure
Je l’utilise moins souvent aujourd’hui, mais il y a encore deux heures, je prenais du plaisir à mettre à jour les exemples d’un vieux livre sur Clojure
Et pensez-vous que Clojure soit adapté aux applications ML/IA, et si son interop avec Python est bonne, pourquoi n’est-il pas davantage adopté ?
Sur la JVM, Clojure est mon langage alternatif préféré
Il s’inscrit dans la tradition des Lisp, tout en ayant cette philosophie séduisante qui consiste à embrasser la plateforme hôte au lieu de promettre naïvement de réinventer la JVM
Zig adopte une démarche similaire, et j’ai l’impression que cette philosophie d’intégration est un point clé pour améliorer l’adoption et la praticité
C’est vraiment excellent. Dommage simplement que borkdude n’y figure pas
L’expression de jwr, « stable long-term companion », m’est restée en tête
Les entreprises où j’ai travaillé et qui ne couraient qu’après la nouveauté ont fini par passer plus de temps aux migrations
La stabilité peut sembler ennuyeuse, mais c’est la seule façon pour une petite équipe de survivre longtemps
J’aimais beaucoup utiliser Clojure, mais la plupart de mon travail exige des interactions avec le langage C, donc il m’était difficile d’en faire mon langage principal
Je ne savais pas que Datomic était désormais gratuit côté licence. À l’époque, je ne l’avais pas utilisé parce que le coût était trop élevé, donc c’est intéressant
Par exemple : Datalevin, Datahike, Asami
Il y a aussi XTDB, mais il a abandonné Datalog pour partir dans une autre direction
Il existe aussi un site comparatif : Clojurelog (un peu daté)