Genre si t’as besoin de récupérer 2 champs de ton json, ça commence à devenir plutôt compliqué.
Sur ce point je te dirais qu’un outil qui produit du JSON (tel que par exemple un kubectl ou n’importe quelle API REST) mais qui ne dispose pas du nécessaire pour fournir un JSON simple avec seulement les informations pertinentes dont tu as besoin, c’est un outil mal foutu. Le problème est en amont là.
Et pour quand tu n’as pas le choix tu peux trouver le bon outil, exemple https://github.com/TomNomNom/gron. Alors, oui, c’est du Go, pas de Bash, mais c’est bien là toute la force de Bash, être une sorte de « glue language » qui excelle précisément à faire travailler ensemble les outils les plus adaptés aux tâches données.
Et je rappelle tout de même que jq peut avoir une syntaxe compliquée, il n’y a aucun besoin en traitement du JSON qui lui soit inatteignable.
multidimensionnels, les arrays? Ou c’est juste un bon gros hack de chez mémé, avec une syntaxe absolument imbitable?
Tu as des array indexés (ce que Python appelle très pertinemment des « list »), ainsi que des arrays associatifs (« dict » en Python). À partir de là si tu as besoin d’objets plus complexe, et bah tu fais avec ces types de base. Est-ce qu’on reproche au C ces types natifs limités ? Ou a Perl de ne pouvoir avoir des arrays de pointeurs ? Même en Python les types d’objets « complexes » sont basés sur les trois types de base : scalaire, list et dict (sachant que tout scalaire peut être considéré comme une liste selon le besoin.
et que donc array[1] est la même chose que array["1"] bien que ça ne veuille pas du tout dire la même chose
Bash n’est pas une exception sur ce point. C’est le principe du typage dynamique/faible : le type dépend du contexte. Perl, Python et d’autres fonctionnent pareil. Un scalaire "chaîne de caractères" n’est pas conceptuellement différent d’une liste de caractères.
une syntaxe absolument imbitable
T’as déjà eu affaire à du PowerShell ? :)
oui, bon a ce compte la, l’assembleur aussi est multi thread.
Oui, et ? Tu dirais que l’assembleur est obsolète ?
Entendons nous bien, je suis loin de dire que Bash est un langage supérieurs aux autres, il a ses avantages et ses inconvénients, comme absolument tous les langages. Ce que je dis c’est que le considérer comme un langage obsolète qui n’aurait donc plus aucun avantage est une connerie. Qu’on aime pas sa philosophie, ses paradigmes ou sa syntaxe, soit, mais faut arrêter le « Bash bashing > ! ^^
[^] # Re: De la pertinence du KISS et d l’anticipation des besoins futurs
Posté par Marotte ⛧ . En réponse au journal Le sophisme du meilleur outil. Évalué à 4. Dernière modification le 23 novembre 2023 à 16:12.
Sur ce point je te dirais qu’un outil qui produit du JSON (tel que par exemple un kubectl ou n’importe quelle API REST) mais qui ne dispose pas du nécessaire pour fournir un JSON simple avec seulement les informations pertinentes dont tu as besoin, c’est un outil mal foutu. Le problème est en amont là.
Et pour quand tu n’as pas le choix tu peux trouver le bon outil, exemple https://github.com/TomNomNom/gron. Alors, oui, c’est du Go, pas de Bash, mais c’est bien là toute la force de Bash, être une sorte de « glue language » qui excelle précisément à faire travailler ensemble les outils les plus adaptés aux tâches données.
Et je rappelle tout de même que jq peut avoir une syntaxe compliquée, il n’y a aucun besoin en traitement du JSON qui lui soit inatteignable.
Tu as des array indexés (ce que Python appelle très pertinemment des « list »), ainsi que des arrays associatifs (« dict » en Python). À partir de là si tu as besoin d’objets plus complexe, et bah tu fais avec ces types de base. Est-ce qu’on reproche au C ces types natifs limités ? Ou a Perl de ne pouvoir avoir des arrays de pointeurs ? Même en Python les types d’objets « complexes » sont basés sur les trois types de base : scalaire, list et dict (sachant que tout scalaire peut être considéré comme une liste selon le besoin.
Bash n’est pas une exception sur ce point. C’est le principe du typage dynamique/faible : le type dépend du contexte. Perl, Python et d’autres fonctionnent pareil. Un scalaire "chaîne de caractères" n’est pas conceptuellement différent d’une liste de caractères.
T’as déjà eu affaire à du PowerShell ? :)
Oui, et ? Tu dirais que l’assembleur est obsolète ?
Entendons nous bien, je suis loin de dire que Bash est un langage supérieurs aux autres, il a ses avantages et ses inconvénients, comme absolument tous les langages. Ce que je dis c’est que le considérer comme un langage obsolète qui n’aurait donc plus aucun avantage est une connerie. Qu’on aime pas sa philosophie, ses paradigmes ou sa syntaxe, soit, mais faut arrêter le « Bash bashing > ! ^^