Je n'ai pas été clair, je ne prétends pas que Rust soit mieux que les autres langages pour faire un outil CLI. En fait, si je devais choisir un langage pour faire un tel outil, je prendrais très probablement autre chose que Rust : Go, OCaml ou Crystal.
Je constate que les outils récents de type CLI que j'utilise sont quasiment tous écrits en Rust. Par récent, on va dire depuis 5 ans (ça correspond à peu près à la sortie de Rust 1.0). Les exemples que tu as donnés, httpie, vegeta et vtop, sont plus anciens et je ne les utilise pas (même si ça pourrait).
Je cherche une explication à cette observation. D'un côté, je comprends que Python, Ruby et Node.js soit mal adapté pour des outils de type CLI : ils ont un temps de chargement qui peut se ressentir en ligne de commande, notamment quand ils chargent pas mal de modules, et c'est plus compliqué à installer qu'un simple binaire à télécharger. Mais de l'autre, pourquoi Rust est privilégié par rapport à Go et d'autres langages comparables, ça m'échappe. Mon choix serait au contraire de préférer l'aspect pratique d'avoir un garbage collector, avoir des goroutines et channels, etc.
[^] # Re: rust
Posté par Bruno Michel (site web personnel) . En réponse à la dépêche Trois utilitaires : Delta, Dust et Watchexec. Évalué à 8.
Je n'ai pas été clair, je ne prétends pas que Rust soit mieux que les autres langages pour faire un outil CLI. En fait, si je devais choisir un langage pour faire un tel outil, je prendrais très probablement autre chose que Rust : Go, OCaml ou Crystal.
Je constate que les outils récents de type CLI que j'utilise sont quasiment tous écrits en Rust. Par récent, on va dire depuis 5 ans (ça correspond à peu près à la sortie de Rust 1.0). Les exemples que tu as donnés, httpie, vegeta et vtop, sont plus anciens et je ne les utilise pas (même si ça pourrait).
Je cherche une explication à cette observation. D'un côté, je comprends que Python, Ruby et Node.js soit mal adapté pour des outils de type CLI : ils ont un temps de chargement qui peut se ressentir en ligne de commande, notamment quand ils chargent pas mal de modules, et c'est plus compliqué à installer qu'un simple binaire à télécharger. Mais de l'autre, pourquoi Rust est privilégié par rapport à Go et d'autres langages comparables, ça m'échappe. Mon choix serait au contraire de préférer l'aspect pratique d'avoir un garbage collector, avoir des goroutines et channels, etc.