Présentation du langage de programmation Borgo
- On voulait un langage pour écrire des applications plus expressif que Go, mais moins complexe que Rust
- Go est simple et intuitif, mais on aimerait parfois qu’il offre davantage de sûreté de typage
- Rust est agréable à utiliser (du moins pour le code monothread), mais il est trop vaste, trop complexe et parfois pénible
- Borgo est un nouveau langage transpillé en Go, entièrement compatible avec les packages Go existants
- La syntaxe de Borgo ressemble à celle de Rust, avec des points-virgules optionnels
Fonctionnalités principales
- Types de données algébriques et pattern matching
- Utilisation de
Option à la place de nil
- Utilisation de
Result à la place des retours multiples
- Gestion des erreurs avec l’opérateur
?
Exécution en local
- Borgo étant écrit en Rust,
cargo est nécessaire
- Pour compiler tous les fichiers
.brg du dossier courant :
- Le compilateur génère des fichiers
.go, qui peuvent ensuite être exécutés normalement
L’avis de GN⁺
- Rust est un langage puissant, mais sa courbe d’apprentissage est raide et son adoption présente une barrière d’entrée élevée ; Borgo semble être une tentative intéressante pour tirer parti des atouts de Rust dans l’écosystème Go. Cela dit, le projet en est encore à ses débuts et son écosystème risque d’être limité
- Le fait d’améliorer
nil et la gestion des erreurs avec Option et Result, ainsi que de simplifier le traitement des erreurs avec l’opérateur ?, semble pouvoir répondre à plusieurs frustrations fréquentes chez les développeurs Go
- Le fait de pouvoir utiliser telles quelles les bibliothèques Go existantes est un gros avantage. En revanche, comme Borgo reprend une syntaxe inspirée de Rust, les développeurs Go pourraient avoir besoin de temps pour s’y adapter
- Comme il s’agit d’une approche par transpilation, il est possible que Borgo soit désavantagé par rapport à du code Go natif en matière de débogage ou de performances à l’exécution. Cela paraît encore un peu prématuré pour une adoption dans du code de production à grande échelle
- De la même manière que Kotlin gagne des parts dans l’écosystème JVM, Borgo devra sans doute encore progresser sur plusieurs aspects — qualité du code, productivité de développement, courbe d’apprentissage — pour devenir une vraie solution dans l’univers Go. S’il continue d’évoluer, il pourrait devenir une alternative séduisante pour la communauté Go
1 commentaires
Avis Hacker News
Résumé :
enumet les typesOptional, ont été ajoutéesimpl, syntaxe des channels et des goroutines, fonction intégréezeroValue(), etc.enumde Rustpub/privateà la place de la convention de Go qui distingue la visibilité des champs de struct par les majuscules et minuscules est aussi perçue positivement