« Les objectifs de conception du langage Bosque comprennent l'amélioration de la productivité des développeurs, l'amélioration de la qualité des logiciels et la mise en œuvre d'une gamme de nouveaux compilateurs et de nouvelles expériences d'outils de développement. Le nouveau langage se positionne comme une expérience de conception régularisée pour un cycle de vie de développement logiciel assisté par machine, rapide et fiable », soutient l'équipe des chercheurs de Microsoft.
D'après les informations recueillies, Bosque dérive d'une combinaison de syntaxe et de types inspirés par TypeScript et de la sémantique de ML (Meta Language) et Node/JavaScript. Mark Marron, chercheur en informatique chez Microsoft, décrit le nouveau langage de programmation comme un effort permettant d'aller au-delà du modèle de programmation structurée qui est devenu populaire dans les années 1970. Il convient également de rappeler que le paradigme de programmation structurée, dans lequel le contrôle des flux est géré avec des boucles, des conditions et des sous-routines, est devenu populaire suite à un article d'Edsger Dijkstra intitulé " Go To Statement Considered Harmful " et publié en 1968.
Pour Marron, il est possible de faire mieux en programmation notamment en éliminant les sources de complexité comme les boucles, l'état mutable et l'égalité de référence. C'est ce qu'apporte Bosque, qui représente un paradigme de programmation que Marron, dans un un rapport technique qu'il a écrit, appelle « programmation régularisée ».
« Ce modèle s'appuie sur le succès de la programmation structurée et des types de données abstraites en simplifiant les modèles de programmation existants sous une forme régularisée qui élimine les principales sources d'erreurs, simplifie la compréhension et la modification du code et convertit de nombreuses tâches de raisonnement automatisé en propositions triviales », explique Marron dans son document technique.
À quoi ressemble Bosque ?
Voici un exemple de code écrit en Bosque ; c'est l'équivalent d'une boucle en JavaScript où // désigne un commentaire d'une seule ligne :
Code Bosque : | Sélectionner tout |
1 2 3 4 5 6 7 | //Functor (Bosque) var a = List[Int]@{...}; //Pre: true var b = a.map[Int](fn(x) => x*2); //Post: List[Int]::eq(fn(x, y) => y == x*2, a, b) |
Ci-après quelques caractéristiques et choix de conception faits pour le langage Bosque :
- toutes les valeurs sont immuables. La documentation de Bosque souligne que Bosque adopte un modèle fonctionnel avec des données immuables et la compréhension de l'effet d'une déclaration de bloc de code est simplifiée lorsqu'elle est sans effet secondaire ;
- la programmation fonctionnelle est fusionnée avec les blocs de portée et les accolades {…} en permettant des affectations multiples à des variables modifiables ;
- les fonctions sont des valeurs et des types de première classe ;
- les arguments nommés sont implémentés, de même que les opérateurs de repos, d'épandage. Ceux-ci peuvent effectuer des manipulations de données dans le cadre d'invocations et d'opérations de construction ;
- les opérations de données algébriques en masse dans Bosque commencent par des lectures en masse et des mises à jour des valeurs de données. Les opérateurs produits aident à focaliser le code sur l'intention générale et permettent aux développeurs d'effectuer un raisonnement algébrique sur les opérations de structure de données. Les opérations algébriques sont fournies pour les types de données, les tuples, les enregistrements et les types nominaux, ainsi que pour les opérations de projection, de mise à jour multiple et de fusion ;
- avec une capacité de traitement itératif, les boucles structurées sont échangées pour des constructions de traitement itératif de haut niveau. En supprimant l'expression standard de l'écriture des mêmes boucles, on élimine les catégories d'erreurs, y compris les calculs liés ; l'intention est clairement exprimée ;
- etc.
Comme évoqué plus haut, un des objectifs premiers de Bosque est l'élimination de la complexité accidentelle, par conséquent le code Bosque est censé être simple et facilement compréhensible aussi bien par les humains que par les machines. Il convient par ailleurs de souligner que Bosque est encore en développement avancé et ses promoteurs recommandent de ne pas l'utiliser pour le moment dans les environnements de production. Cela dit, les développeurs sont invités à l'expérimenter.
Le projet Bosque est hébergé sur GitHub.
Source : Microsoft - Documentation de Bosque
Et vous ?
Que pensez-vous de ce nouveau projet open source de Microsoft ?
Allez-vous tester ce nouveau langage ?
Voir aussi
Muon, un langage de programmation de bas niveau inspiré de C, C# et Go vise un degré de performance égal à celui du C~~ sous Windows, Linux et macOS
La version 0.4.0 de Zig est disponible, le langage peut-il vraiment remplacer le C et devenir le nouveau standard pour la programmation système ?
Programmation : une étude révèle les langages les plus voraces en énergie, Perl, Python et Ruby en tête, C, Rust et C++, les langages les plus verts