3 points par GN⁺ 13 일 전 | 6 commentaires | Partager sur WhatsApp
  • 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èteguide 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
  • ÉditeursCalva 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

 
runableapp 12 일 전

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.

 
chebread 12 일 전

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.

 
runableapp 12 일 전

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.

 
chebread 12 일 전

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 ?

 
runableapp 12 일 전

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.

 
GN⁺ 13 일 전
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

    • C’est aussi ce qui me reste en tête. Il y a beaucoup trop de développeurs Clojure qui redémarrent sans cesse le processus JVM au lieu d’utiliser le REPL
      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

    • Je serais curieux de savoir quel langage vous utilisez maintenant, et ce que vous pensez aujourd’hui de Clojure
    • J’aimerais surtout savoir quel regard vous portez globalement sur Clojure maintenant
  • 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

    • Votre site web est vraiment magnifique, et votre travail est impressionnant
  • 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

    • Je me demande pourquoi vous utilisez moins Clojure maintenant. Est-ce un problème d’emploi ?
      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

    • Avant, cette approche me rebutait un peu, mais aujourd’hui je pense que c’est justement l’une des raisons pour lesquelles Clojure a trouvé sa place comme langage de niche
      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

    • Oui, et c’est dommage qu’il manque aussi des figures européennes. Il y a tellement de personnes remarquables : Metosin, Juxt, Borkent, Gaiwan(Arne), Flexiana, Peter Strömberg(Calva), Dustin Getz(hyperfiddle/electric), Christophe Grand(ClojureDart), Bojidar(CIDER), Renzo, etc.
  • 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

    • Cela vaut le coup de jeter un œil à Janet. Ce n’est pas aussi puissant que Clojure, mais c’est excellent pour le prototypage et le scripting
    • Jank est aussi intéressant. C’est encore tôt, mais l’objectif est l’interop C/C++
    • Coffi est construit sur le C FFI de Java 22 (Project Panama), ce qui rend les bindings avec C beaucoup plus agréables
    • J’interagis moi aussi souvent avec du C/C++, mais en ce moment, je génère des wrappers Project Panama avec Claude puis j’ajoute une couche Clojure par-dessus, et ça se fait plutôt bien
  • 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

    • Oui, et Datomic a inspiré plusieurs bases de données Datalog basées sur Clojure
      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é)