Pour xbindkeys, le fait d'avoir un langage de script (scheme/guile) m'a permit de laisser les utilisateurs faire ce qu'ils veulent du programme sans ce prendre la tête à modifier le programme en C directement ou à étendre le parser par défaut (qui est déjà suffisamment compliqué comme ça, même si la syntaxe est très simple) ou de me demander à chaque fois de rajouter la fonction dont ils ont besoins.
Le programme en C est le squelette et le langage de script accède au fonctions de base par une API simplifiée (ajouter/enlever une touche, associer une touche à un programme externe ou une fonction en scheme).
Ça m'a évité de rajouter des patchs en quantité pour faire telle ou telle chose. Et ce qui devait être fait à coup de scripts bash et de programmes externes est devenu beaucoup plus simple et plus puissant grâce à un langage complet (le scheme) avec lequel on peut définir de nouvelle fonctions/variables, avoir des tests, des boucles...
Faire la même chose avec un système de plugins aurait été possible mais pas aussi simple : compilation du plugin vs écriture à chaud dans le fichier de conf (qui est relu automatiquement des qu'il est modifié -> tu sauvegarde le fichier de conf et les modifications sont prisent en compte instantanément).
# Retour
Posté par hocwp (site web personnel) . En réponse au journal De l'utilité d'un langage de script comme langage d'extension d'un logiciel.. Évalué à 2.
Le programme en C est le squelette et le langage de script accède au fonctions de base par une API simplifiée (ajouter/enlever une touche, associer une touche à un programme externe ou une fonction en scheme).
Ça m'a évité de rajouter des patchs en quantité pour faire telle ou telle chose. Et ce qui devait être fait à coup de scripts bash et de programmes externes est devenu beaucoup plus simple et plus puissant grâce à un langage complet (le scheme) avec lequel on peut définir de nouvelle fonctions/variables, avoir des tests, des boucles...
Faire la même chose avec un système de plugins aurait été possible mais pas aussi simple : compilation du plugin vs écriture à chaud dans le fichier de conf (qui est relu automatiquement des qu'il est modifié -> tu sauvegarde le fichier de conf et les modifications sont prisent en compte instantanément).