Comparaison des solutions¶
Comparer les gestionnaires de runtimes pour choisir le bon outil — cette grille peut alimenter un ADR.
Candidats¶
| Outil | Langages | Licence | Langage d'implementation |
|---|---|---|---|
| mise | Tous (compatible asdf) | MIT | Rust |
| asdf | Tous (via plugins) | MIT | Shell (Bash) |
| nvm | Node uniquement | MIT | Shell (Bash) |
| pyenv | Python uniquement | MIT | Shell (Bash) |
| sdkman | JVM uniquement | Apache 2 | Shell (Bash) |
Grille multi-critères¶
| Critère | mise | asdf | nvm | pyenv | sdkman |
|---|---|---|---|---|---|
| Langages supportes | Tous | Tous | Node seul | Python seul | JVM seuls |
| Performance | Excellente (Rust, 10-100x asdf) | Lente (Bash, shims) | Moyenne | Moyenne | Moyenne |
| Compatible .tool-versions | Oui | Oui (créateur) | Non (.nvmrc) | Non (.python-version) | Non (.sdkmanrc) |
| Activation shell | PATH direct (pas de shims) | Shims (~/.asdf/shims) | Script shell | Shims | Script shell |
| Plugins asdf | Compatible | Natif | — | — | — |
| Variables d'environnement | Oui (mise.toml) | Non | Non | Non | Non |
| Tâches (task runner) | Oui (mise.toml) | Non | Non | Non | Non |
| Installation | Binaire unique | Script + Git | Script | Script + Git | Script |
| Maintenance | Active (Jeff Dickey) | Active | Active | Active | Active |
Analyse¶
mise — le choix moderne¶
Forces : 10-100x plus rapide qu'asdf (Rust vs Bash), pas de shims (PATH direct = compatible avec tous les outils), fonctionnalités supplémentaires (tâches, env), compatible asdf.
Faiblesses : plus recent (moins de documentation communautaire), certains plugins asdf rares peuvent avoir des incompatibilites.
Idéal pour : équipes multi-langages, nouveaux projets.
asdf — le standard¶
Forces : créateur du format .tool-versions, ecosysteme de plugins le plus large, bien documente.
Faiblesses : lent (chaque appel passe par un shim Bash), pas de fonctionnalités au-delà de la gestion de versions.
Idéal pour : équipes déjà sur asdf, projets necessitant des plugins rares.
nvm / pyenv / sdkman — les specialistes¶
Forces : simples, bien documentes, communauté large pour chaque langage.
Faiblesses : un outil par langage, formats de fichier différents, scripts d'activation lents.
Idéal pour : projets mono-langage.
Recommandation¶
mise est le choix par defaut pour une équipe multi-langages. La compatibilité asdf assure une migration transparente, les performances sont supérieures et les fonctionnalités supplémentaires (tâches, env) évitent d'ajouter d'autres outils.
Documenter le choix
Formalisez la decision dans un ADR (Architecture Decision Record).