3 ms·
I've briefly used both so don't expect my comparison to be exhaustive: - nix uses a centralized non-free repo (Github) ; guix relies on mailing lists for patch
by southerntofu 5y ago
I've briefly used both so don't expect my comparison to be exhaustive:
- nix uses a centralized non-free repo (Github) ; guix relies on mailing lists for patches
- nix invents an entire language ecosystem that's based on JSON + functions ; guix reuses an existing (and complete) programming language (GNU/Guile, a dialect of Scheme lisp)
- nix packages proprietary software as long as they can provide a checksum for their executables/packages ; guix has a dedicated repo (non-guix) for that ; in both cases it's opt-in
- nix has differences in behavior when run as a distro (nixos) or on a foreign system ; guix has unified naming conventions for both cases (although some details of setting up on a foreign distro for eg. GUI applications can be a bit tricky)
- nix CLI is... confusing, to say the least ; guix CLI UX could be improved but is rather easy
- nix packages tend to be updated more quickly compared to guix packages
- guix maintainers are very picky about package descriptions: i tried to package a rust program along with ~20 dependencies, and the maintainer said i should come up with different short summaries vs long descriptions for those 20 dependencies... which are software i've never used so i'm not the good person to do just that
- guix has a strong emphasis on security R&D: bootstrappability is making huge progress alongside the guix project (see blog posts), which to my knowledge isn't researched on nix side ; "guix challenge" and "guix git-authenticate" are very important/cool things to read about if you're curious
- guix may introduce major syntactic changes to ease contribution, as was recently the case with "G-expressions" https://guix.gnu.org/en/blog/2021/the-big-change/ https://guix.gnu.org/en/blog/2021/the-big-change/
- nix uses mainline Linux + systemd ; guix uses Linux-libre + GNU/shepherd
Probably many other differences other people will point out, but that's the ones that struck me so far attempting to use both.