La version 1.0 d’Unison vient d’être lancée le 25 novembre dernier. Il s’agit de la première itération stable du langage fonctionnel à typage statique selon Unison Computing. Présenté comme « un langage de programmation convivial venu du futur », Unison est censé apporter des avantages de compilation et de développement de systèmes distribués. « Avec Unison, une définition est identifiée par son contenu réel, c'est-à-dire un hachage de son arbre syntaxique, et non pas seulement par un nom convivial qui renvoie également à des versions plus anciennes de la définition », a expliqué l’organisme en charge du projet. Ainsi, chaque définition Unison possède une adresse unique et déterministe. Tous les arguments nommés sont remplacés par des références de variables numérotées par position, et toutes les dépendances sont remplacées par leurs hachages. Ainsi, le hachage de chaque définition identifie de manière unique son implémentation exacte et détermine toutes ses dépendances, selon l’entreprise.

L'écosystème Unison exploite cette idée fondamentale dès le départ. Parmi ses avantages, le langage ne compile jamais deux fois le même code et limite les conflits de versions. De plus, il promet de simplifier la programmation distribuée. Selon Unison Computing, les définitions dans Unison étant identifiées par un hachage de contenu, les calculs arbitraires peuvent être déplacés d'un emplacement à un autre, les dépendances manquantes étant déployées à la volée. « Unison peut être considéré comme un descendant de Haskell, avec lequel il présente des similitudes, notamment l'inférence de types et la correspondance de motifs, mais il est plus petit et plus simple que Haskell », indique une foire aux questions.

Une facilité d’installation et d’utilisation

Les instructions de téléchargement et d'installation sont disponibles pour Homebrew, Windows, Linux et MacOS sur le site web d'Unison. Il peut être utilisé comme n'importe quel autre langage généraliste, ou en conjonction avec le cloud Unison pour construire des systèmes distribués. Son code est stocké sous forme d'arbre syntaxique abstrait dans une base de données, c'est-à-dire la « base de code », plutôt que dans des fichiers texte. Unison dispose d'une compilation incrémentielle « parfaite », avec un cache de compilation partagé qui fait partie du format de la base de code.

« Malgré le typage statique fort, les utilisateurs n'ont presque jamais à attendre la compilation du code », a affirmé Unison Computing. La représentation basée sur le hachage et soutenue par une base de données d'Unison modifie également la manière dont le code est identifié, versionné et partagé. « Le flux de travail, la chaîne d'outils et le modèle de déploiement découlent naturellement de la conception du langage, ce qui permet de disposer de meilleurs outils pour travailler avec le code », a encore fait valoir l’organisme.