La mise à jour Clojure 1.10 prend en charge modern Java

Le langage JVM fonctionnel permet d’obtenir plus de détails sur les erreurs de programmation avec le modern Java, après la version 8.

i Clojure est surtout connu pour sa proximité avec Java, il a également été étendu à d’autres plates-formes. (Crédit D.R.)

Créé il y a 11 ans, le langage Clojure a apporté la programmation fonctionnelle à la JVM. La dernière mise à jour 1.10 améliore la compatibilité Java et le reporting des erreurs. Si Clojure est surtout connu pour sa proximité avec Java, il a également été étendu à d’autres plates-formes. C’est le cas par exemple de Clojure CLR, qui supporte le langage du Common Language Runtime de Microsoft. Un compilateur ClojureScript permet aussi aux développeurs Clojure de compiler leur code en JavaScript.

Quoi de neuf dans Clojure 1.10

La version 1.10 supporte Java 8 à Java 11. Elle met à jour le système de modules introduit dans Java 9, corrige les bogues liés au bytecode et supprime les API obsolètes. Les rapports d’erreurs au REPL (read-eval print loop) classent désormais les erreurs en fonction de la phase d’exécution, comme read, compile et macroexpand. Des informations supplémentaires sont également fournies sur l’emplacement et le contexte des données. Les rapports contiennent aussi des messages d’erreur spécifiques à la phase, avec une information plus précise sur la localisation. Cette fonctionnalité est intégrée dans le REPL clojure.main, mais elle est également disponible pour d’autres REPL et outils, et les développeurs peuvent utiliser et modifier les données pour produire de meilleurs messages d’erreur. 

Parmi les autres fonctionnalités de Clojure 1.10 on peut citer : 

– Defprotocol : cette fonction sert à définir un ensemble désigné de méthodes et leurs signatures. Elle comporte une nouvelle option « :extend-via-metadata » : quand cette option est vraie, les valeurs peuvent étendre les protocoles en ajoutant des métadonnées où les clefs sont des symboles de fonction de protocole qualifiés et les valeurs, des implémentations de fonction.

– Tap : cette fonction fournit un système partagé pour la distribution d’informations ou de diagnostics à un ensemble de fonctions de gestion. Elle peut servir à déboguer la capacité prn du noyau ou pour des fonctions comme la journalisation.

– La fonction « read+string » imite la fonction « read », mais capture également la chaîne de caractères lue et renvoie à la fois la valeur lue et la chaîne lue.

– Une version pré-bêta de Prepl fournit un REPL à base de flux avec une sortie structurée, adaptée à l’usage programmatique.

– La fonction clojure/datafy pour la transformation object-to-data dispose des fonctions « datafy » et « nav » pour transformer et naviguer dans les graphes d’objet. 

Clojure 1.10 est téléchargeable à partir de la page web de Clojure. 

chevron_left
chevron_right