AccueilActualités informatiqueLangage de programmation : Gleam 0.18 apporte un nouvel outil de construction...

Langage de programmation : Gleam 0.18 apporte un nouvel outil de construction à l’écosystème Erlang

La version 0.18 du langage de programmation évolutif à sécurité de type Gleam vient d’être publiée. Gleam fait partie de l’écosystème Erlang et est conçu pour la machine virtuelle Erlang, mais doit également fonctionner avec JavaScript, entre autres. La principale nouveauté de cette nouvelle version est que le langage dispose d’un outil de construction autonome, que la communauté attendait depuis longtemps, selon les éditeurs.

Comme l’indique le billet de blog annonçant la sortie de la nouvelle version, les développeurs de Gleam devaient jusqu’à présent utiliser l’outil de construction standard du langage de programmation Erlang pour leurs projets. rebar3 est certes considéré comme un outil utile pour les constructions, mais il n’était pas adapté à Gleam et devrait réserver quelques obstacles et surprises aux débutants dans le langage. Selon les éditeurs, le nouvel outil est mieux adapté et permet aux équipes de développement de travailler de manière plus ciblée sur le code Gleam, tout en offrant une expérience de développement plus agréable.

L’outil de construction de Gleam est inclus dans le binaire Gleam. Par conséquent, tous ceux qui téléchargent la version 0.18 disposent automatiquement de l’outil de construction et ne doivent rien installer séparément. Les projets peuvent toujours être créés avec la commande gleam new pour créer un projet. Le code d’application se trouve dans le répertoire src, le code de test dans le répertoire test. Un projet qui vient d’être créé se présente par exemple comme suit :

$ tree
# ├── README.md
# ├── gleam.toml
# ├── src
# │   └── my_project.gleam
# └── test
#     └── my_project_test.gleam

Ceux qui travaillent avec Gleam n’ont plus besoin d’exécuter le code dans le shell Erlang, ce qui était jusqu’à présent la méthode standard sous rebar3 et pouvait irriter les développeurs. Au lieu de cela, le nouvel outil de construction propose une commande plus familière pour les développeurs Gleam :

$ cd my_project
$ gleam run
#   Resolving versions
# Downloading packages
#  Downloaded 2 packages in 0.01s
#   Compiling gleam_stdlib
#   Compiling gleeunit
#   Compiling my_project
#    Compiled in 1.85s
#     Running my_project.main
# Hello from my_project!

Dès que l’outil de construction est en marche, il télécharge automatiquement les paquets de dépendance et les compile, ainsi que le projet. Ce n’est qu’à l’étape suivante qu’il démarre la machine virtuelle Erlang (BEAM) et appelle l’outil de développement. main-du projet Gleam. Les dépendances sont alors automatiquement enregistrées dans une sandbox spécifique au projet, ce qui évite d’avoir recours à un environnement virtuel ou à d’autres outils. La version actuelle place également les tests sur de nouveaux pieds : les projets Gleam sont ainsi déjà préconfigurés avec gleeunit, un wrapper autour du framework de test Erlang EUnit. Les tests peuvent être exécutés avec la commande suivante :

$ gleam test
#   Compiling my_project
#    Compiled in 0.24s
#     Running my_project_test.main
# .
# Finished in 0.008 seconds
# 1 tests, 0 failures

La commande gleam test doit se comporter de manière similaire à gleam runen téléchargeant et en compilant les dépendances à la demande. Pour le test de Gleam, les développeurs ne sont cependant pas limités à gleeunit, d’autres frameworks de test sont également envisageables, tant qu’ils sont écrits dans des langages BEAM comme Erlang ou Elixir. Les projets Gleam contiennent également un fichier dans lequel il est possible de définir des métadonnées spécifiques au projet, telles que le nom du projet, la version et toute dépendance. Comment les dépendances s’établissent dans le gleam.toml-est illustré par des exemples dans le blog du site web de Gleam.

Sommaire

Gleam se base sur la machine virtuelle Erlang et utilise surtout le runtime Erlang, sans overhead selon les éditeurs. Ainsi, les programmes écrits dans Gleam devraient fonctionner aussi rapidement et avec le multithreading que leurs homologues écrits dans Erlang. Gleam est compatible avec d’autres langages BEAM comme Erlang, Elixir et LFE (Lisp-Flavoured Erlang), ce qui ouvre aux utilisateurs du langage un vaste écosystème de milliers de bibliothèques open source. Ceux qui s’y intéressent de plus près peuvent jeter un coup d’œil sur le site web de hex, le gestionnaire de paquets pour l’écosystème Erlang. BEAM est la machine virtuelle au cœur de l’Erlang Open Telecom Platform (OTP) et fait partie de l’Erlang Runtime System (ERTS), qui compile le code source d’Erlang en bytecode, lequel peut ensuite être exécuté sur BEAM.

Selon les éditeurs, les aspects de sécurité sont au premier plan ; ainsi, le système typé statiquement de Gleam doit rechercher et trouver les erreurs au moment du compilation, avant qu’elles n’arrivent chez les utilisateurs. Certaines équipes l’utilisent en production pour le refactoring, car Gleam permet d’apporter rapidement des modifications importantes à du code inconnu avec un minimum de risques. Parmi les points forts du langage, citons la concordance multicœur basée sur les actionneurs, les types de données algébriques, la tolérance aux erreurs de type Erlang, la compilation rapide, l’inférence complète des types, les messages d’erreur détaillés, les génériques, l’absence de comportement indéfini et une gestion fiable des paquets. Derrière Gleam se trouvent, outre la communauté, quatre sponsors : NineFX, le groupe estonien Yolo, Memo et SkunkWerks de Vienne.

Lire aussi

D’autres améliorations de l’expérience de développement sont prévues pour l’avenir, l’équipe Gleam se concentre sur le Language Server Protocol pour les fonctions IDE dans les éditeurs de code ainsi que sur le support du backend du compilateur JavaScript. Les développeurs de Gleam ont également prévu le déploiement et les fonctionnalités qui en découlent pour les prochaines versions.

Gleam est disponible sur GitHub. De plus amples informations sur la version actuelle sont disponibles dans le blog sur le site web de Gleam. La première annonce a été faite par l’équipe de Gleam sur Twitter. Tous les changements par rapport à la version précédente sont listés dans le changelog sur GitHub. Pour les curieux sans expérience de Gleam et BEAM, un guide de démarrage est disponible.

Plus d'articles