Introduction
Gleam continue de repousser les limites avec sa dernière version, la 1.18.0. Conçu pour la machine virtuelle Erlang et les environnements JavaScript, Gleam se distingue par sa sécurité de type statique et sa scalabilité. Cette mise à jour renforce encore plus ces caractéristiques avec des améliorations significatives du serveur de langage, rendant le développement plus fluide et efficace.
Support des champs de record
Un des ajouts majeurs de cette version est le support complet des champs de record dans le serveur de langage. Cela inclut des fonctionnalités telles que 'aller à la définition', 'trouver les références' et 'renommer' pour les champs de record. Que ce soit dans une déclaration de champ, un argument étiqueté, un motif étiqueté, une mise à jour de record ou un accès à un champ de record, toutes ces opérations fonctionnent désormais de manière transparente, tant au sein d'un module qu'entre différents modules.
Exemple concret
Prenons l'exemple d'un type Person :
``gleam pub type Person { Person(name: String, age: Int) } pub fn main() { let lucy = Person(name: "Lucy", age: 10) lucy.name // ^ 'Go-to-definition' saute au champ name, et le renommer ici // renomme le champ partout où il est utilisé. } ``
Le support des champs de record permet des modifications globales rapides et sûres, augmentant ainsi la productivité des développeurs.
Renommage des variables de type
Dans la même veine, le serveur de langage permet désormais le renommage des variables de type dans les fonctions, les types et les constantes. Cela simplifie la refactorisation et évite les erreurs potentielles liées à la gestion manuelle des types.
Exemple de renommage
``gleam pub fn twice(value: a, f: fn(a) -> a) -> a { f(f(value)) } ``
Peut être renommé en :
``gleam pub fn twice(value: anything, f: fn(anything) -> anything) -> anything { f(f(value)) } ``
Mise à jour des imports pour les modules renommés
Une autre fonctionnalité pratique est la mise à jour automatique des imports pour les modules renommés. Cela évite aux développeurs de devoir manuellement retrouver et modifier chaque instance d'un module renommé, réduisant ainsi les risques d'erreurs et les pertes de temps.
Action de code pour le pattern matching
Le contrôle de flux dans Gleam repose sur le pattern matching. Le serveur de langage offre désormais une action de code qui insère rapidement une expression case, permettant aux développeurs d'ajouter leur logique facilement.
Exemple de pattern matching
``gleam pub fn main() { case load_user() { Ok(value) -> todo Error(value) -> todo } } ``
Performances JavaScript améliorées
Enfin, Gleam continue d'optimiser sa sortie JavaScript en produisant un code simple et efficace, garantissant des performances comparables à celles du code écrit manuellement.
Conclusion
Gleam v1.18.0 est une mise à jour importante qui améliore considérablement l'expérience des développeurs. Que tu sois un développeur aguerri ou un novice, les améliorations apportées par cette mise à jour rendront ton travail plus efficace et agréable.
Discutons de ton projet en 15 minutes.