Bonjour,
Étant sous Unix, le langage de script que j'utilise principalement est le shell bash. Cependant, il y a plein de choses que je n'aime pas dans ce langage :
- pas de types, il n'y à que des chaines de caractères
- modifications à tout va d'une instruction avant de l'exécuter (remplacement des étoiles par le contenu du répertoire, suppression des espaces multiples, suppression des backslashs ...)
En bref, il est très difficile de faire un programme vraiment fiable avec ça.
Donc j'aimerais trouver un langage de script avec ces caractéristiques :
- typage fort, une variable ne doit pas pouvoir changer de type
- typage statique, le type d'une variable doit être déclaré ou inféré (pas d'ambiguïtés)
- pas de substitution par défaut dans le code. Pour illustrer cela, pensez au préprocesseur du C (#define) ou à la fonction eval() des langages de script : une instruction est créée à partir de bouts de texte qui viennent de n'importe où. Et en bash, c'est la cerise sur le gâteau : toutes les variables sont substituées par défaut par leur contenu sur chaque ligne de code, et même parfois plusieurs fois sur la même ligne.
- des fonctions qui sont capables de renvoyer une valeur, car en bash, on doit exécuter la fonction dans un nouveau processus (un sous shell), la fonction doit écrire le résultat d'une fonction sur la sortie standard et enfin on doit récupérer la sortie standard du sous shell pour le mettre dans une variable. J'utilise ce mécanisme pour faire intéragir des programmes entre eux, mais j'aimerais aussi pouvoir utiliser des fonctions normales dans mon propre script.
En définitive ce que j'aimerais c'est trouver un langage interprété qui se comporte comme un langage compilé (comme le C). Il n'a pas besoin d'être portable au delà des systèmes POSIX car c'est juste pour administrer / utiliser ma machine au quotidien. Comme c'est pour une utilisation quotidienne, les mécanismes de "répertoire courant" et de "pipe" (manipulation des entrées et sorties standards) seraient appréciables.
Merci à ceux qui voudront bien partager leurs connaissances.
Partager