Alors, ça risque d'être un peu long (et biaisé : je contribue à Guix :)) donc oui, les deux distributions sont assez similaires. Guix est plus récente que Nixos (2012 contre 2002 si je me souviens bien) et est basée sur les mêmes principes, la thèse d'Eelco Dolstra. D'ailleurs Guix contient un tout petit composant de Nixos: le démon Nix. Tout le reste est complètement différent.
Avec Nix, il est nécessaire d'apprendre un nouveau DSL (le langage d'expression Nix), pour l'utiliser, le paramétrer, créer des paquets, ... Guix demande d'apprendre un langage assez ancien, Scheme (plus précisément l'implémentation Guile de GNU). L'avantage de Guile, c'est son homoiconicité : les données et les programmes ont la même représentation. On s'en sert pour créer ce qu'on appelle des G-Expressions. En gros, au lieu d'utiliser le langage Nix pour concaténer des chaînes de caractères qui représentent des scripts shells (ou bien d'autres langages) à passer au démon Nix, on utilise Scheme pour créer des programmes Scheme à passer au démon Nix, ce qui de mon point de vue est bien plus propre.
De la même manière, on s'intègre un peu mieux avec le reste du système, notamment parce que le PID 1 est le Shepherd, écrit et configuré en Scheme. Pareil pour le démon de taches récurrentes mcron, écrit et configuré en Scheme.
Aillant eu plus de temps pour maturer, Guix propose aussi des interfaces de programmation de plus haut niveau. Si Nixos manipule directement des dérivations (des fonctions écrites en Nix), Guix propose d'utiliser des notions de plus haut niveau (paquets, origines, simili-fichiers, système d'exploitation, service, ...) qui permettent entre autre l'héritage et ont une structure de base bien plus stricte (et donc compréhensible) qu'une simple fonction. Ces objets sont ensuite traduits en dérivation pour que le démon puisse faire son œuvre.
Guix prend aussi position idéologiquement et techniquement sur certains aspects : elle respecte les FSDG (Free Software Distributions Guidelines) et ne propose donc pas de logiciel non-libre. Elle insiste aussi beaucoup sur la reproductibilité (comme Nix) et la possibilité d'amorcer les logiciels. C'est une différence qui me tient beaucoup à cœur, même si ça veut dire qu'il y a moins de paquets qui arrivent à passer les standards de qualité de Guix. On peut toujours créer un canal pour les paquets qui n'ont pas encore atteint la maturité suffisante pour passer ces critères.
[^] # Re: Similaire à NixOS
Posté par roptat . En réponse à la dépêche GNU Guix 1.2.0 est publié. Évalué à 10.
Alors, ça risque d'être un peu long (et biaisé : je contribue à Guix :)) donc oui, les deux distributions sont assez similaires. Guix est plus récente que Nixos (2012 contre 2002 si je me souviens bien) et est basée sur les mêmes principes, la thèse d'Eelco Dolstra. D'ailleurs Guix contient un tout petit composant de Nixos: le démon Nix. Tout le reste est complètement différent.
Avec Nix, il est nécessaire d'apprendre un nouveau DSL (le langage d'expression Nix), pour l'utiliser, le paramétrer, créer des paquets, ... Guix demande d'apprendre un langage assez ancien, Scheme (plus précisément l'implémentation Guile de GNU). L'avantage de Guile, c'est son homoiconicité : les données et les programmes ont la même représentation. On s'en sert pour créer ce qu'on appelle des G-Expressions. En gros, au lieu d'utiliser le langage Nix pour concaténer des chaînes de caractères qui représentent des scripts shells (ou bien d'autres langages) à passer au démon Nix, on utilise Scheme pour créer des programmes Scheme à passer au démon Nix, ce qui de mon point de vue est bien plus propre.
De la même manière, on s'intègre un peu mieux avec le reste du système, notamment parce que le PID 1 est le Shepherd, écrit et configuré en Scheme. Pareil pour le démon de taches récurrentes mcron, écrit et configuré en Scheme.
Aillant eu plus de temps pour maturer, Guix propose aussi des interfaces de programmation de plus haut niveau. Si Nixos manipule directement des dérivations (des fonctions écrites en Nix), Guix propose d'utiliser des notions de plus haut niveau (paquets, origines, simili-fichiers, système d'exploitation, service, ...) qui permettent entre autre l'héritage et ont une structure de base bien plus stricte (et donc compréhensible) qu'une simple fonction. Ces objets sont ensuite traduits en dérivation pour que le démon puisse faire son œuvre.
Guix prend aussi position idéologiquement et techniquement sur certains aspects : elle respecte les FSDG (Free Software Distributions Guidelines) et ne propose donc pas de logiciel non-libre. Elle insiste aussi beaucoup sur la reproductibilité (comme Nix) et la possibilité d'amorcer les logiciels. C'est une différence qui me tient beaucoup à cœur, même si ça veut dire qu'il y a moins de paquets qui arrivent à passer les standards de qualité de Guix. On peut toujours créer un canal pour les paquets qui n'ont pas encore atteint la maturité suffisante pour passer ces critères.