[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Choix de langage de script adapté (Was: bash: impossible de régler le groupe de processus du terminal (20286): Ioctl() inapproprié pour un périphérique)



Basile Starynkevitch, au 2019-08-21:
>On 8/21/19 1:27 AM, G2PC wrote:
>> Le 18/08/2019 à 12:19, Étienne Mollier a écrit :
>>> Pour les opérations un tantinet plus avancées, préférez les
>>> scripts à part entière.
>En particulier, considérez les scripts dans des langages
>meilleurs que Bash, par exemple GNU guile (qui est qualifié de
>langage de script préférentiel pour GNU) ou Lua.

Vrai : Bash est avant tout un shell interactif, avec les
limitations qu'impliquent la concision et l'exécution
séquentielle des instructions.  Rédiger un script robuste dans
ce langage est une tâche qui nécessite un apprentissage de
règles peu intuitives, au risque de se prendre les pieds dans le
tapis ; je pense aux règles relatives à l'usage des guillemets,
ou la poursuite de l'exécution d'un script après qu'une erreur
ait eu lieu, comportement par défaut à contrer en utilisant
l'option "set -e".

À mon sens le meilleur langage à utiliser est celui adapté à la
tâche ou à l'environnement général de travail.  Bien souvent,
les administrateurs système tendent à s'en tenir à Bash parce
que quasiment tous les scripts du système sont rédigé dans ce
langage, ou son parent /bin/sh.  Bien sûr il y a deux ou trois
exceptions, comme les fichiers de configuration en m4 de
Postfix, ou bien du NIS, qu'il faut penser à compiler avant de
donner à manger au dæmon, mais ce genre de déviation est
relativement rare.

De ce que je comprends, dans le cas présent, le gros du travail
effectué par le script mediawiki1 était en fait effectué par un
autre langage, le PHP, usuellement considéré comme adapté pour
construire dynamiquement des pages en HTML.  Bash ne servait que
d'enrobage pour faciliter le lancement du script tout en
ajoutant une fine couche d'enregistrement dans un fichier de
journal.

Pour faire un peu de tout, le langage Python revient souvent en
entreprise ces dernières années.  Ce n'est pas forcément le
langage le plus amusant du monde, mais par défaut il est très
clair à lire et relativement robuste (sauf peut-être pour les
allergiques au typage dynamique) ; il faut le faire exprès pour
rédiger un script Python comme un cochon.

Dans les situation où la vitesse d'exécution prime, le bon vieux
langage C est plus efficace que jamais, à condition de bien
l'utiliser, comme pour tout ; mais on sort complètement du cadre
des langages de script.

J'ai eu quelque discussions avec un collègue sur l'usage des
langages à paradigme fonctionnels ; je dois admettre que Guile a
l'air tentant pour me mettre le pied à l'étrier (non ce n'est
pas à cause de la publicité autour de l'interfaçage avec le
langage C.  :)

>Observez aussi que GNU emacs est scriptable en E-lisp (et sait
>"presque" tout faire).

Est ce que « faire ma vaisselle » fait partie du « "presque"
tout » ?  :)

Amicalement,
-- 
Étienne Mollier <etienne.mollier@mailoo.org>
               5ab1 4edf 63bb ccff 8b54 2fa9 59da 56fe fff3 882d
          « Java est en quelque sorte le Cobol du XXIe siècle. »
                                                 -- Larry Wall
Source:
	https://www.youtube.com/watch?v=LR8fQiskYII
Transcription (hachée):
	http://blog.mattcallanan.net/2013/03/larry-wall-5-programming-languages.html


Attachment: signature.asc
Description: OpenPGP digital signature


Reply to: