Honnêtement, je ne pense pas que nix/nixos soit interessant pour de l'utilisation pure et dure.
Par contre, pour de l'admin ou du dev c'est vraiment top. Par exemple, juste en ajoutant un default.nix à un projet, tu définis complètement son environnement logiciel (dépendances, compilation...). Du coup, cet environnement est facilement reproductible et tu peux aussi le déployer et le composer à d'autres environnements facilement.
Également, si tu développes dans plusieurs langages, tu as souvent pleins de gestionnaires différents à utiliser (npm, pip, gem...) en plus du gestionnaire système (apt, dnf, pacman...) sans compter des environnements virtuels (python-virtualenv...). L'écosystème Nix fournit tout ça en un outil, et peut combiner le tout. En exagérant, tu peux quasiment remplacer les gestionnaires systèmes (apt...), les gestionnaires "langage" (pip...), les environnements virtuels (python-virtualenv...) et même les conteneurs distants ou locaux (docker, flatpack...).
Et effectivement, tu peux aussi personnaliser les packages proposés (par exemple, si tu utilises opencv en C++, je te déconseille d'utiliser les versions packagées par les OS, cf vidéo 07).
[^] # Re: Nix (le gestionnaire) sur d'autres distros.
Posté par nokomprendo . En réponse au journal le "style fonctionnel" en vidéos (Nix, NixOS, Haskell). Évalué à 7.
Honnêtement, je ne pense pas que nix/nixos soit interessant pour de l'utilisation pure et dure.
Par contre, pour de l'admin ou du dev c'est vraiment top. Par exemple, juste en ajoutant un default.nix à un projet, tu définis complètement son environnement logiciel (dépendances, compilation...). Du coup, cet environnement est facilement reproductible et tu peux aussi le déployer et le composer à d'autres environnements facilement.
Également, si tu développes dans plusieurs langages, tu as souvent pleins de gestionnaires différents à utiliser (npm, pip, gem...) en plus du gestionnaire système (apt, dnf, pacman...) sans compter des environnements virtuels (python-virtualenv...). L'écosystème Nix fournit tout ça en un outil, et peut combiner le tout. En exagérant, tu peux quasiment remplacer les gestionnaires systèmes (apt...), les gestionnaires "langage" (pip...), les environnements virtuels (python-virtualenv...) et même les conteneurs distants ou locaux (docker, flatpack...).
Et effectivement, tu peux aussi personnaliser les packages proposés (par exemple, si tu utilises opencv en C++, je te déconseille d'utiliser les versions packagées par les OS, cf vidéo 07).