5 ms·
Just curious. For anyone who has used both Nix and Guix, which one do you prefer, and which do you think is more likely to gain traction (ignoring the 800lb gor
by tbirdz 12y ago
Just curious. For anyone who has used both Nix and Guix, which one do you prefer, and which do you think is more likely to gain traction (ignoring the 800lb gorillas of deb and rpm, for the moment)?
- hjek 12y agoGuix seems nice in that it is all-free and is configurable in Scheme, but packages for quite common stuff like Java and Haskell and Jack-audio server are not present yet, although they are in NixOS. Looking forward to Guix 1.0 as I like Scheme and GNU :-)
- nextos 12y agoI've been using NixOS and Nix to install things in my servers. It's very mature. Most things I need are packaged, including not so popular utilities like isync or notmuch. However, I'm curious about containers. For example systemd-nspawn seems like a simple way to achieve many of the functionality NixOS brings into the table.
- baumbart 12y agoNote that you can use Nix packages in Guix. They are compatible.
- pmahoney 12y agoI've not used Guix, but looking at those slides, the ability to take the build definition of the "hello" program, inherit everything but change the version, looks very interesting. I'm not aware of a way to do that in Nix, but I think it's more a consequence that the convention is to call stdenv.mkDerivation { descriptor } (where the descriptor includes things like the upstream url, version, etc.) without providing a direct handle to the descriptor (which one might inherit and modify just the upstream url, for example). (In practice, I find it an order of magnitude easier to create custom packages in Nix compared to .deb.)
- vertex-four 12y ago> I've not used Guix, but looking at those slides, the ability to take the build definition of the "hello" program, inherit everything but change the version, looks very interesting. To do this with any derivation in in nixpkgs, call pkgs.lib.overrideDerivation on it, passing the relevant new attributes. This'll inherit the old attributes, only modifying the ones you supply. This is described in the manual: http://nixos.org/nixos/manual/#sec-customising-packages http://nixos.org/nixos/manual/#sec-customising-packages
- pmahoney 12y agoExcellent, thank you!
- 1_player 12y agoAfter playing with NixOS the past few days, never touched Guix, I think the former is more likely to be "taken seriously." The ideas behind Nix/Guix are really interesting and a major improvement from traditional packagement solutions, and personally I much prefer using Scheme than a Haskell-derived DSL to configure my environment and operating system. The problem is a political one: NixOS ships with current Linux standard technologies such as systemd, while this Guix-based OS uses this GNU dmd project I've never heard of until now, but I have no doubts its features and maturity is a fraction of systemd's (whatever is your opinion on systemd). All for the sake of the free software radicalism. I love GNU and FSF and everything, but as a Linux user and administrator I'd really like we settle on something and build from there. I may be mistaken, and open to criticism.
- vezzy-fnord 12y agoThe features are a fraction of systemd's, yes. This is because dmd actually has a concrete idea of what it wants to do, and doesn't just arbitrarily consolidate functionality under the pretense of being a "basic building block to make a Linux-based OS from". As for maturity, you are mistaken. GNU dmd was first started around 2003, before even launchd existed.
- cwyers 12y agoSoftware isn't a biological entity, you can't measure maturity with just age.
- M2Ys4U 12y agoHell, you can't even measure a person's maturity with just age.
- 1_player 12y agoMaturity != age, maturity == number of eyes on a project + bugs fixed + real world usage. As a comparison, the Hurd project started in 1990, Ubuntu in 2004. Which one is more mature? That is, which one would you use in a production environment?
- baumbart 12y agoI have used both NixOS and Guix and can say that I definitely prefer Guix. Internally, the package manager is really the same. On the interface side, Nix uses its own functional programming language, while Guix uses Scheme which I am used to and prefer syntax-wise. It's awesome to write configuration files in Scheme! You can write scheme functions that output a valid system configuration for guix. You can then apply guix, reboot, and have a new system. It's also very easy to maintain different configurations. On the OS side, dmd is also pretty damn cool. The whole system feels kind of polished and reminded me much of current *BSD systems, including a decent texinfo manual on the first boot. With the difference that you get a working framebuffer through linux on startup. While NixOS is kind of an academical experiment, I think Guix really has the potential to become the only true GNU system. It still lacks stability and has some rough edges of course. Maybe Guix will also help merging the Emacs and GNU operating systems to create a single, tightly integrated Lisp OS ;) There is already an Emacs interface for Guix.
- aristidb 12y agoCalling NixOS an "academical experiment" is slightly disingenuous. The initial author does come from academia, but works in industry now, and you just need to look at the Github [1] to see that NixOS is maintained quite actively. [1] https://github.com/NixOS/nixpkgs/commits/master https://github.com/NixOS/nixpkgs/commits/master
- rev 12y agoI concur. Besides NixOS is certainly more polished right now, at least for my definition of "polish" (I think, the right word for Scheme based Guix is "cohesive", maybe even "elegant"). It should be, being several years old, compared to Guix, which has been running on real hardware for mere weeks.