• [^] # Re: Résultat

    Posté par . En réponse au lien The Programming Language compiled to Bash.. Évalué à 5.

    Par exemple, pour faire de la validation de paramètres (vérifier qu'un code postal ou qu'une adresse mail correspond bien au format attendu), tu as peu de méthodes lisibles et maintenables. Dès que tu as des espaces ou des retours à la ligne dans tes paramètres ou le flux d'entrée (stdin), ça devient galère, faut sortir 25 outils, et ça devient illisible.

    En soi, c'est prévu comme ça : un outil pour chaque tâche, flux orienté texte, des outils qui peuvent se brancher ensemble. Mais dès que tu commences à envoyer des trucs tordus, ça ne tient pas avec du shell. Alors qu'avec un langage qui gère les variables en tant qu'entité, tu as plus de contrôle.

    Bash a de quoi gérer les cas simples avec l'opérateur =~, mais tu es vite en train d'empiler des cut et des tr. Rapidement, on se retrouve avec du sed, du awk, ou des appels à des outils comme jq, ou des sous-shell (blah="{mathjax} (echo \"{blih}\" | grep ...)") qui permettent l'injection de code. Ça ressemble plus à du scrapping qu'à de la validation, à la fin.

    Et quitte à utiliser sed et awk, autant se donner les moyens et sortir Python ou Perl :).

    Mais : souvent, je fais malgré tout des scripts shell pour des trucs simples, parce que la flemme, parce que pratique et vite fait. Mais je sais que ça reste limité et que tôt ou tard ça va me péter au nez !