[gull] Faut-il réhabiliter Perl comme langage de scripting système?

Daniel Cordey dc at pxcluster.com
Mon Mar 12 14:28:45 CET 2018


On 12. 03. 18 11:06, felix wrote:
>
> Sans oublier les languages du web: HTML (3 à 5) et CSS(>=2)!

Langages purement "descriptifs" mais que l'on ne peut pas vraiment 
considérer pour apprendre la programmation. Control-flow ?

> ( mais, les faire bosser sur LaTeX, pour leur rapports et présentations,
>    avec des outils comme gnuplot, dotty... Cela se fait encore beaucoup
>    dans les universités et est très utile pour la cohérence et la pérénité
>    des documents... -> ``R'' )

Sans compter que l'on peut absolument tout faire avec ça, alors que ce 
n'est pas le cas des logiciels de traîtement de texte. Sauf que, là 
encore, on ne parle d'une "application" d'un ensemble d'outils et pas 
d'une langage de programmation. Qui penserait faire du sys admin en 
Latex ? Ce n'est pas parce que c'est possible (et illisible) que ça a un 
sens.

> En effet, l'``administration'' doit concerner l'embarqué, les serveurs
> et les desktops... Dans bien des cas, ``bash'' n'est pas installé, soit
> pour des raisons de mémoire, soit pour des raisons de sécurité (trop
> complexe).

Oui, mais de l'embarqué a souvent un système vraiment minimum et on a 
que 'sh' parfois avec quelques commandes. La tendance est à avoir plus 
de RAM et des cartes SD, mais ce n'est pas garanti et là tu n'as que 
'sh' ou des fois seulement du code compilé (Arduino). On ne peut donc 
pas généraliser et le vrai embarqué aura toujours pas mal de limites.

> bash doit cependant occuper une part importante, il devient de plus en
> plus un language de programmation...

C'est justement là que Perl prend le relais. Les shells (dont bash) sont 
des langages de scripting quand même limités et ne sont pas destinés à 
devenir des langages de programmation généraux. Comme préciser au début 
de cette discussion, attention à ne pas sur-utiliser bash/sh/*sh. Bash 
est un langage destiné à exécuter des commandes et a énormément de 
limitations comme langage de programmation générale (pas de calculs en 
flottant, pas de binaire, etc.)

> utilisant des raccourcis permettant
> par exemple une interaction bidirectionnelle avec un sous-process (voire
> perl Open2 et perlipc ;)
>   ...
>
>    $ ps --sid $(ps ho sid $$) fw

Ce n'est pas parce que l'on peut le faire que c'est une bonne idée ou 
que c'est efficace. Ce genre d'opération s'écrit de manière beaucoup 
plus lisible et plus simple dans plusieurs autres langages mieux 
adaptés. Et que se passe-t-il si les enregistrements dans la base 
contiennent des BLOB en binaire ? Jolie démonstration mais que l'on ne 
peut hélas pas généraliser.

C'est bien de savoir écrire ce genre de chose en bash, c'est aussi bien 
de savoir lire ce code... mais il faut le maintenir. Ce n'est pas (plus) 
vendable dans une équipe IT aujourd'hui; même le Perl ne trouve plus 
grâce aux yeux des "agilistes" aujourd'hui. Les outils d'admin dans le 
domaine des clusters sont écrits en Python/Go/Lua/etc. Bien ? Pas bien ? 
Peut-être, peut-être pas... C'est juste un fait.

dc


	



More information about the gull mailing list