S01E74 — 10-10-2024.
Un langage aussi rapide que le C.
jour 74.
Une information en provenance du CCC puisqu’il y a dans le club Levo DeLellis, le créateur du langage de programmation Bolin. Au vu de sa descrption c’est un langage ultra compétitif comparé à C/C++. Vu que c’est un peu la guerre concernant les langages systèmes — suffit de voir Rust qui prône constamment d’être le successeur du C. Là, tu as un gars solo dans sa veuca qui te pond un compilateur robuste face à Rust et ses centaines de développeurs à travers le monde. C’est assez hallucinant, une statisque incroyable est que son compilateur mange plus de 3 millions de lignes de code à la secondes.
Din-gue-rie !
À vérifier mais pas sûr que le langage Jai de Jonatan Blow soit capable d’empiffrer autant de ligne. Il doit avoisiner les 1 million de lignes par seconde. Ce qui reste ultra rapide. Mais là Bolin, c’est une dingue. J’ai des réserves sur la syntaxe car j’y vois quelques inchohérences — notamment avec les variables. Par exemple qu’exprime les bouts de code ci-dessous :
Sans connaitre le langage, je dirai…
Si l’opérateur := permet d’inférer le type de la valeur 0.
sum := 0
Ici, la fonction example retourne deux valeurs qui sont des nombres entiers. Du coup, pourquoi la déclaration des variables a et b n’est pas fait via l’opérateur :=. Quel est le rôle de = dans ce cas ? La déduction du type se fait telle par le type retourné par la fonction example.
example(int a, b, c) int, int { return a*b+c, a*b-c }
a, b = example(5, 3, 2)
Si le type est déduit depuis le retour de la fonction, pourquoi la déclaration de variable comprends le type ?
int my_inout = 3
Suite à une lecture approfondie. Il semble que l’opérateur = permet de déclarer des variables immuables tandis que l’opérateur := est utilise pour déclarer des variable mutables. Ce qui fait sens et permet de ne pas utiliser de mot-clé dans ce contexte. Dans le fond, j’aime moins, après, c’est un avis syntaxique subjectif. Ce qui n’enlève en rien la robustesse du langage et qu’il faille le surveiller d’un peu plus près. Je verrai pour tester le langage et voir ce qu’on peut faire de concrêt avec.
En attendant, j’omettrai un bémol — la license. Enfin je dirai plutôt l’impossibilité d’avoir accès au code source. Ah, j’en ai oublié un autre, c’est le manque de documentation, certes il y a quelques concepts qui sont décris. Cependant, c’est bien trop maigre. Le site internet ne possède aucune information pour permettre à un non-inités de s’enjailler avec son langage.