Comparaison des solutions¶
Comparer les shells modernes pour choisir celui qui convient a votre équipe — cette grille peut alimenter un ADR.
Candidats¶
| Shell | Première version | Licence | Philosophie |
|---|---|---|---|
| Bash | 1989 | GPL v3 | Standard POSIX universel |
| Zsh | 1990 | MIT | Bash compatible + fonctionnalités avancees |
| Fish | 2005 | GPL v2 | User-friendly par defaut, pas POSIX |
| Nushell | 2019 | MIT | Données structurées (tables, pas texte) |
Grille multi-critères¶
| Critère | Bash | Zsh | Fish | Nushell |
|---|---|---|---|---|
| Compatibilité POSIX | Oui (référence) | Oui (quasi-totale) | Non | Non |
| Preinstalle | Linux, macOS (\<10.15) | macOS (≥10.15) | Non | Non |
| Autocompletion | Basique (Tab) | Avancee (menu, fuzzy) | Excellente (native) | Excellente (types) |
| Plugins | Limites | Oh My Zsh (~300 plugins) | Fisher (~200 plugins) | Limites |
| Prompt personnalise | Manuel | Oh My Zsh themes, Starship | Natif ou Starship | Natif ou Starship |
| Scripting | Standard, bien documente | Compatible Bash + extensions | Syntaxe propre, pas Bash | Pipeline type, moderne |
| Portabilité des scripts | Maximale | Tres bonne | Faible (syntaxe incompatible) | Faible |
| Courbe d'apprentissage | Faible | Faible (venant de Bash) | Tres faible | Moyenne (paradigme différent) |
| Performance | Bonne | Bonne | Bonne | Tres bonne (Rust) |
| Communauté | Enorme | Tres grande | Grande | Croissante |
Analyse¶
Bash — le standard¶
Forces : installe partout, scripts portables, documentation exhaustive.
Faiblesses : autocompletion et prompt limites sans configuration, syntaxe parfois obscure.
Idéal pour : scripts portables, serveurs, CI/CD.
Zsh — le meilleur compromis¶
Forces : compatible Bash (migration transparente), ecosysteme Oh My Zsh massif, autocompletion avancee, correction orthographique, globbing etendu.
Faiblesses : necessite Oh My Zsh ou un framework pour atteindre son plein potentiel.
Idéal pour : développeurs venant de Bash qui veulent plus de productivite.
Fish — user-friendly¶
Forces : configuration par defaut excellente, autocompletion sans configuration, syntaxe claire et moderne.
Faiblesses : pas compatible POSIX — les scripts Bash ne fonctionnent pas. Necessite de traduire les snippets trouves en ligne.
Idéal pour : debutants, utilisateurs qui veulent un shell productif sans configuration.
Nushell — le paradigme différent¶
Forces : pipelines types (tables, pas texte), performance (Rust), messages d'erreur clairs.
Faiblesses : ecosysteme jeune, syntaxe incompatible avec Bash/Zsh, courbe d'apprentissage pour le paradigme "tout est structure".
Idéal pour : early adopters, data wrangling en ligne de commande.
Recommandation¶
Pour une équipe DSI, Zsh est le choix par defaut :
- Compatible avec les scripts Bash existants
- Shell par defaut sur macOS depuis Catalina
- Ecosysteme mature (Oh My Zsh, plugins, themes)
- Courbe de migration quasi nulle depuis Bash
Documenter le choix
Quelle que soit la decision, formalisez-la dans un ADR (Architecture Decision Record).