nix vs guix.org
source link: https://gist.github.com/abcdw/e54807b0a25e61fe2cf1bf8991410f83
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
Nix vs Guix
Some notes
- We are not aware of a lot of GNU software available to us.
- Seems that Guix more hacker-friendly/explorable.
General comparsion
Description | Nix | Guix | Comment |
---|---|---|---|
Established | 2003 | 2013 | |
Poprietary Software | Yes | No | |
Other OSe | MacOS, GNU/Linux | GNU/Linux, Hurd | |
Packages | nixpkgs (53000) | guix (15000+) | https://repology.org/ |
Nix vs Guile | Nix | GNU Guile | |
Documentation | Docbook | GNU Texinfo | |
Branching model | Combined | Rolling-release | |
Service manager | systemd | GNU Shepherd | |
Build scripts | Bash | G-exps | |
Version lock | Flakes | Channels | |
Consistency | Medium | High | |
cli implementation | c++ | guile | |
Bootstrapping | ? | Yes | GNU Mes |
Module System | Yes | No | |
Implicity | Frequent | OKeish |
Version lock
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.
Nix vs Guile
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.
Guile is full-fledged scheme with good tooling.
Packages
Nix has much more packaged.
Guix has only free software in main repo, definitions looks more consistent and less hacky.
Documentation
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.
For example info:guix#Build Systems refers to info:guile#Optional Arguments.
Branching model
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.
Guix problems
- You can’t use few channels with different version of guix in one profile
Nix problems
- Inconsistent nix cli
- Tooling kinda lacking for nix language
- Glued together different parts not so well integrated
Resources
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK