ANNÉES 2000

Clojure

En 2005, Rich Hickey se lance dans l'aventure Clojure. Il finance cette entreprise avec ses économies de retraite, prenant une année sabbatique pour concevoir un langage qui résoudrait les problèmes qu'il rencontre quotidiennement depuis des années. Son ambition ? Créer un outil aussi acceptable en entreprise que Java ou C#, mais débarrassé des complexités inutiles qui encombrent le développement des systèmes d'information.

Hickey n'est pas un novice. Depuis 1987, il travaille comme architecte logiciel, naviguant entre C++, Java et C#. Cette longue expérience lui a appris une chose : les langages orientés objet traditionnels imposent un prix élevé. La programmation impérative avec état mutable exige des efforts démesurés dès qu'il faut modifier un programme sans rompre la cohérence des données. Ces systèmes rigides résistent au changement malgré l'encapsulation et les abstractions.

Parallèlement à son travail, Hickey explore Common Lisp dans ses projets personnels. Cette pratique lui ouvre les yeux : toute cette complexité qu'il combat au bureau n'est pas une fatalité. Avec la flexibilité de Lisp, on attaque un problème exactement au bon niveau, sans couches superflues. Mais Common Lisp reste cantonné aux expérimentations. Les entreprises refusent de déployer des applications écrites dans ce langage. À deux reprises, Hickey doit réécrire en C++ des systèmes qu'il avait développés en Common Lisp, ou les transformer en procédures stockées SQL pour satisfaire ses clients.

L'idée germe alors de marier la puissance de Lisp avec l'acceptabilité de Java. Hickey choisit la machine virtuelle Java comme fondation. Cette décision tactique élimine d'emblée les obstacles à l'adoption : Clojure est un citoyen de première classe de l'écosystème Java, avec son interopérabilité native et sa capacité à réutiliser les bibliothèques existantes.

Le premier défi technique se posa pour rendre les structures de données immuables suffisamment performantes pour un usage pratique. Durant l'hiver 2006-2007, Hickey implémente une version persistante des tables de hachage à essai mappé avec un facteur de branchement de 32. Les primitives de copie de tableau de Java se révèlent efficaces. Cette percée délivre des performances quasi-constantes pour les opérations courantes, rendant l'immutabilité enfin viable en production.

En octobre 2007, la première version alpha de Clojure apparaît sur la liste de diffusion jFli. Le site clojure.org ouvre ses portes, accompagné d'un groupe Google. La réaction dépasse toutes les prévisions : 30 000 visites en trois jours. Les dix-huit mois qui suivent voient le langage s'étoffer considérablement. La bibliothèque standard quadruple, passant de 100 à plus de 400 fonctions.

Clojure se distingue par sa gestion de l'état. Le langage propose plusieurs types de références selon les besoins : les refs utilisent un système transactionnel inspiré des bases de données, les agents gèrent des mises à jour asynchrones, les atoms offrent des modifications atomiques simples. Cette approche contraste avec le modèle uniforme mais limité des langages impératifs traditionnels.

Mai 2009 marque la sortie de Clojure 1.0, accompagnée du premier ouvrage consacré au langage. La version 1.1 arrive en décembre avec les séquences chunked et les transients, apportant des gains de performance substantiels. La version 1.2 en 2010 introduit protocoles et types définis par l'utilisateur, complétant l'arsenal polymorphique du langage.

L'année 2011 ouvre un nouveau chapitre avec ClojureScript. Cette implémentation s'exécute sur les moteurs JavaScript, étendant Clojure au développement web côté client. Le projet démontre la robustesse des abstractions du langage : elles fonctionnent sur une plateforme radicalement différente de la JVM sans modification conceptuelle.

En 2012, Hickey lance Datomic, une base de données qui transpose les principes de Clojure au stockage : immutabilité, temps explicite, sémantique fonctionnelle. Le format EDN (Extensible Data Notation) formalise la syntaxe de sérialisation utilisée par Clojure, offrant une alternative aux formats traditionnels.

La communauté grandit à son rythme. Les conférences Clojure/conj débutent en 2010. ClojureBridge naît en 2014 pour diversifier l'écosystème à travers des ateliers gratuits. Le langage trouve sa place dans des secteurs variés : finance, climatologie, commerce de détail, analyse de données, édition, santé, publicité, génomique.

Des acteurs majeurs l'adoptent pour des systèmes critiques. Walmart traite les reçus électroniques de ses 5 000 magasins avec Clojure. Netflix analyse 2 000 milliards d'événements quotidiens grâce au langage. Nubank, banque numérique comptant plus de 12 millions de clients, bâtit son infrastructure sur Clojure et Datomic.

Le succès repose sur une programmation fonctionnelle avec structures immuables performantes, une interopérabilité native avec la plateforme hôte, des abstractions puissantes pour la concurrence, et un traitement générique des données. Ces atouts font de Clojure un outil adapté aux systèmes d'information contemporains. En 2025, le développement continue son cours mesuré, améliorant outillage et expérience développeur plutôt que d'accumuler des fonctionnalités.