3 points par GN⁺ 12 일 전 | Aucun commentaire pour le moment. | 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

Aucun commentaire pour le moment.

Aucun commentaire pour le moment.