Janet - langage de programmation fonctionnel & impératif
(janet-lang.org)-
Un binaire unique de moins de 1 Mo pour l’ensemble du langage (cœur, interpréteur, compilateur, assembleur, PEG)
-
Prend en charge Windows / macOS / Linux
-
Bien adapté comme langage de script système
-
Utilisable partout où Lisp est employé (prototypage, systèmes dynamiques, etc.)
-
Facilement embarquable dans d’autres programmes comme Lua ou Guile (un fichier C et deux fichiers d’en-tête)
-
Intègre les atouts de plusieurs langages
→ Une syntaxe proche de Lisp et Scheme
→ Closures de première classe & green threads
→ Générateurs de style Python
→ Mutable & Immutable : array/tuple, table/struct, buffer/string
→ Macros Lisp
→ Chargement dynamique de bibliothèques C possible
→ Prise en charge du REPL
→ PEG intégré à la bibliothèque cœur
→ Création d’exécutables autonomes possible avec l’outil de build jpm
2 commentaires
C’est toujours la même chose à chaque sortie d’un nouveau langage… Même s’il a de nombreux avantages et convient bien à certains usages, au final, sans « killer app », il semble difficile de l’adopter. Sans killer app, on ne peut apparemment pas éviter les critiques du type : « Jusqu’où peut-on développer avec ce langage ? », « Quelles bibliothèques seront prises en charge ? » ou encore « Y aura-t-il les ressources nécessaires pour le maintenir dans la durée ? ».
Je suis curieux de voir combien de temps Janet parviendra à survivre.
Sur le GitHub de Janet, il est présenté comme un « Modern Lisp », mais certains estiment aussi que « s’il n’y a pas de List, ce n’est pas du Lisp ».
(Le nom LISP vient de LISt Processing)
→ Les List sont remplacées par des structures de données comme les tableaux, les tables de hachage, les struct et les tuples, comme indiqué plus haut.