4 ms·
I have tried Guix (as a package manager), and it seems much better documented. I also really like the fact that Guix uses a well-established, minimalistic, wel
by jnxx 4y ago
I have tried Guix (as a package manager), and it seems much better documented.
I also really like the fact that Guix uses a well-established, minimalistic, well-implemented, functional-preferred configuration language, which is Guile, the GNU implementation of Scheme, which is very much tailored to be extended with and embedded in other software, for example written in C. In part, my love comes from having had to use the alternatives: Huge configuration files written in YAML, for example, with no real documentation what all the keywords really mean, or things such as Conan, which appear declarative and are.... whatever.
- ryukafalz 4y agoI much prefer Guix UI-wise but it has some downsides: — I’ve had more jank on Guix System as a desktop OS than on NixOS. Specifically some dbus-related stuff like notifications and appindicators (when running sway + waybar) has been very unreliable for me under Guix in ways that it hasn’t been on any other distro I’ve tried including NixOS. Still haven’t figured out why. - Guix is slow compared to Nix. This is especially noticeable on older/weaker hardware. - Nix home-manager has a lot more options than Guix’s equivalent - it’s really nice being able to rely on it for things like sway configuration. That said, between the two I do lean towards Guix because I do gravitate towards Scheme more than the Nix DSL. I just wish it were a bit more polished.
- mattarm 4y agoNix also runs on macOS. I think it gets a lot more traction among devs than Guix does for this reason alone.
- jnxx 4y ago> - Guix is slow compared to Nix. This is especially noticeable on older/weaker hardware. Yeah, I have noted it is not the fastest snail on the lawn. On the other hand, I have seen so much time wasted on integration and reproducibility issues, that I'd be happy to run one day a week nothing else than a Guix install and not have any of these issues.
- SuperSandro2000 4y agoGuix is also very verbose compared to nix.
- jnxx 4y agoWhich is a good thing because most users do not want to configure and program Guix stuff all the time. Many will only use it every few months, and probably don't want to learn syntax and semantics again and again. Extreme terseness like APL or math notation is fine if you work with something all the time. However for infrastructure code and especially build systems, I think readability as well as robustness are much more important aspects.
- SuperSandro2000 4y agoIt's hard for me to find a good point about the verboseness and repetition of for example https://git.savannah.gnu.org/cgit/mediagoblin.git/tree/guix-env.scm#n192 https://git.savannah.gnu.org/cgit/mediagoblin.git/tree/guix-...
- rahen 4y agoGNU Guix, much like Emacs, is a set of LISP (guile) scripts running on top of a small C runtime. Nix is mostly C++ in comparison. https://git.savannah.gnu.org/cgit/guix.git/tree/guix https://git.savannah.gnu.org/cgit/guix.git/tree/guix
- pxc 4y agoI'm still running Nix and only ever mess around with Guix, but I agree: the Guix CLI is beautiful and the documentation for it is quite good.
- Ericson2314 4y ago> minimalistic The Nix language is far more minimalistic than any Scheme. I have nothing against Scheme but let's be clear, Nix out-Schemes Scheme in this regard.
- pxc 4y agoPeople complain about learning 'the language' when the thing they've really been trying to learn is actually: - the language - the stdlib (nixpkgs.lib) - the NixOS module system - several particular packaging ecosystems (stdenv, buildGoModule, buildPythonApplication, etc.) - the hooks and stuff that get exposed as variables and functions in bash-based builders all at once! (plus maybe even the derivation format) It makes sense as a shorthand, and I'm sure it describes the feeling, that people say 'learning the Nix language was overwhelming at first', because using the language in the context of all of those other things (essentially libraries and applications written in Nix) is the context in which one generally tries to learn it. And that really can be a lot to take in at once. But I think when someone says 'learning the Nix language was hard' or something similar, it does sometimes mislead others about the complexity of the Nix language itself. So there's this widespread misconception that Nix-the-language has a lot to it. But like you say, the language itself is actually super minimal. (And really good for its intended purpose, imo.)
- Ericson2314 4y agoI definitely agree. I want Nix to "show off" its layering a bit more for many reasons, but one of them is to hopefully allow for a more gradual curriculum.
- jnxx 4y agoFor somebody who knows Lisp and Scheme, it is however more than nice to already know the language and be able to just read the interface description. To give an extreme example of the opposite direction (no, I do not want to bash Nix here), take CMake and its configuration language which has no real definition. It is just painful to use.