Nix vs Guix
- We are not aware of a lot of GNU software available to us.
- Seems that Guix more hacker-friendly/explorable.
|Other OSe||MacOS, GNU/Linux||GNU/Linux, Hurd|
|Packages||nixpkgs (53000)||guix (15000+)||https://repology.org/|
|Nix vs Guile||Nix||GNU Guile|
|Service manager||systemd||GNU Shepherd|
Flakes seems to provide more hermetic builds than guix channels. Guix still can access different values on host, maybe I’m not yet aware of some features like pure evaluation mode or something similiar. Version lock
Nix isn’t bad, but feels like DSL and it’s necessary to learn/invent new patterns, the tooling is kinda lacking. There are some goodies: you can have few versions of nixpkgs in one profile at the same time, nix doesn’t have namespaces and it won’t fail with name collision. Nix vs Guile
Guile is full-fledged scheme with good tooling.
Nix has much more packaged. Packages
Guix has only free software in main repo, definitions looks more consistent and less hacky.
Guix has centralaized and well-organized documentation in html/pdf/info format. Moreover info format has links to related topics like guile, different gnu utilities and so on. Documentation
For example info:guix#Build Systems refers to info:guile#Optional Arguments.
NixOS has a release twice an year. Guix doesn’t have stable branch, all fixes goes straight to master. Is it bad or good is debatable, because it’s possible to freeze versions of specific packages or even whole development environments. That’s mean that we can keep as less system packages as possible to reduce attack surface and possible breakage on pulling updates from master, everything else will be managed per-user or per-project inside profiles. Branching model
- You can’t use few channels with different version of guix in one profile
- Inconsistent nix cli
- Tooling kinda lacking for nix language
- Glued together different parts not so well integrated