Clojure : le petit langage qui monte qui monte qui monte…
Je crois que c’est la première fois qu’un article en français parle de Clojure, de plus un premier produit commercial construit sur Clojure a été annoncé, un livre et une version 1.0 approchent (sans parler du traffic grandissant dans le groupe de discussion et le canal IRC #clojure).
Pourquoi en parle-je ? Parce que je suis attaché à ce langage et que je participe à son développement. Il présente en effet un cocktail de fonctionnalités détonnant :
- fonctionne sur la JVM, et dispose d’une excellente intégration avec Java (l’on peut autant produire de nouvelle classes qu’utiliser des classes existantes),
- rapide : compilé et appels à Java sans réflexion,
- dynamique,
- conçu pour la programmation concurrente (et en ces temps de multicores généralisés, c’est nécessaire),
- fonctionnel.
Tout cela en fait un langage éminemment pratique : tout l’écosystème Java à disposition et la concision de langages tels que Python ou Ruby.
Certes, il existe JRuby, Jython ou Rhino mais ils souffrent d’un problème de « discordance d’impédance » : ils ne délivrent pas toute leur puissance parce qu’il ne sont pas tout à fait « raccord » avec la JVM, ils restent des langages étrangers, conçus avec les contraintes d’un autre environnement — sans parler du problème des bibliothèques qui sont souvent des wrappers autour de librairies C et qui ne sont donc pas disponibles pour la version « Java » du langage. Cependant, bien qu’ayant souffert de ces problèmes, ce n’est pas ce qui m’a amené à Clojure.
J’ai découvert Clojure quand je cherchais un langage plus souple (extensible) pour remplacer Rhino que j’utilisais pour scripter mes applications Java et dont je touchais les limites (manque de performances et programmation concurrente difficile). Les deux grandes directions qui s’offraient alors à moi étaient Lisp ou Erlang… et j’ai trouvé Clojure qui m’a tout de suite séduit par :
- le modèle extrêmement propre de développement qu’il propose,
- le souci constant de demeurer un langage pratique utilisable au jour le jour quel que soit la taille de la tâche à traiter,
- la qualité de sa communauté d’utilisateurs,
- la stabilité de l’implémentation,
- le sérieux et l’application de Rich Hickey (le créateur du langage) qui a pesé (et continue à peser) chaque décision quant à la conception de Clojure.
Là où je cherchais un langage de script j’ai découvert un langage pouvant également remplacer Java.
Bref, un langage à essayer, vous en retirerez toujours quelques enseignements.
« Lisp is worth learning for the profound enlightenment experience you will have when you finally get it; that experience will make you a better programmer for the rest of your days, even if you never actually use Lisp itself a lot. »
- Eric Raymond, « How to Become a Hacker »
Wouaw je suis impressionné
Julien, le 15 septembre 2010 à 19:04