Unison publie sa version 1.0
La communauté de programmation fonctionnelle voit entrer en production le premier stable du langage Unison. Développé par Unison Computing, le projet a officiellement lancé sa version 1.0 le 25 novembre dernier, après plusieurs années de recherche sur un modèle de code immuable et de gestion de dépendances par hachage.
Un modèle de compilation sans duplication
Au cœur de Unison se trouve l’idée que chaque définition est identifiée par le hachage de son arbre syntaxique. Cette approche élimine la duplication de compilation : un même fragment de code n’est jamais recompilé deux fois, même lorsqu’il est partagé entre plusieurs projets. En associant chaque définition à une adresse unique, le langage réduit également les conflits de version, car chaque dépendance est résolue de façon déterministe.
Simplicité et performance pour les systèmes distribués
Unison vise à rendre la programmation distribuée plus fluide. Les dépendances manquantes sont déployées « à la volée », et les calculs peuvent être déplacés d’un nœud à un autre sans re‑compilation. Le modèle de base de code, stocké sous forme d’arbre syntaxique dans une base de données, permet un cache de compilation partagé et incrémentiel, appelé « perfect incremental compilation ». Les développeurs bénéficient ainsi de temps de compilation très courts malgré la robustesse du typage statique.
Facilité d’installation et interopérabilité
Le langage est proposé pour les principaux systèmes d’exploitation : Windows, Linux, macOS, et peut être installé via Homebrew. Unison peut être utilisé comme langage généraliste ou combiné avec le service cloud du même nom pour construire des architectures distribuées. Son interopérabilité avec d’autres outils est soutenue par une chaîne d’outils conçue autour de la représentation par hachage.
Un héritage de Haskell, mais plus léger
Dans les FAQ, Unison est décrit comme un « descendant de Haskell », partageant l’inférence de types et la correspondance de motifs, mais présentant une syntaxe plus concise et un ensemble de fonctionnalités plus restreint. Cette conception vise à réduire la courbe d’apprentissage tout en conservant la rigueur typique des langages fonctionnels.
Perspectives
Avec la sortie de la version 1.0, Unison cherche à se positionner comme un outil pragmatique pour les équipes de développement qui souhaitent réduire les problèmes de version et optimiser la compilation dans des environnements distribués. Son modèle unique de gestion de code pourrait influencer la façon dont les langages fonctionnels traitent les dépendances et la distribution à l’avenir.
