• [^] # Re: Ça Bram dans les repos

    Posté par . En réponse au lien Vim9 script feature-complete. Évalué à 3.

    Je me exprimé de façon lapidaire, je vais développer un peu.

    Vim9 tente de corriger les défauts du VimL (son langage de script dédié d'origine) avec un nouveau langage de script.

    Qui va utiliser ce langage ?

    Les utilisateurs de Neovim sont passés à Lua, qui a l'avantage d'avoir été mis au point dans une sphère plus large que l'écosystème d'un éditeur de texte. Un autre avantage de Lua est sa rapidité d'exécution (pas le plus important, mais ça fait toujours plaisir) et sa robustesse (dû à une simplicité parfois critiquée, le débat « tables vs dict/array/liste... »).

    Les utilisateurs de Vim sont maintenant confrontés à un choix cornélien: réécrire les scripts VimL, comme si ils passaient à neovim en adoptant Lua ? Dans ce cas, quel intérêt ? L'utilisateur de Vim tient souvent à la rétrocompatibilité du VimL, qui assure qu'un script développé pour Vim7 tournera encore dans Vim9. Ça ne sera plus le cas avec le nouveau langage, et je suis prêt à parier que bien des utilisateurs de Vim9 resteront à l'ancien système de script.

    L'auteur de Vim s'épuise dans une feature qui sera peu ou pas utilisée, et qui va fragmenter sa communauté. Quand à l'argument de l'optimalité, Vim9+nouveau langage ne fait pas mieux que Neovim+Lua (et je parle de l'interpréteur Lua, pas d'un Neovim compilé avec le support Luajit). Même les benches présentés par l'auteur de Vim ne montrent pas de spectaculaire gain de vitesse, surtout par rapport à tous les problèmes qu'il va soulever en effets de bord.

    Un nouveau langage de script est toujours délicat, même au sein d'une communauté florissante. Je ne suis pas certain que la communauté de Vim ait quelque chose à gagner (dans son ensemble) à une nouvelle fragmentation. Ce genre de décision risque surtout de favoriser les éditeurs de texte (je ne nommerai personne) qui ont le vent en poupe.

    Discussions en français sur la création de jeux videos : IRC libera / #gamedev-fr