Comment by Zambyte

Comment by Zambyte 4 days ago

13 replies

I switched away from Nix OS and eventually landed on GNU Guix, which I have stayed on for about 4 years now. One of the main reasons I switched away from Nix was because of the language, and how underdocumented it all felt. GNU Guix was a breath of fresh air, using a language with decades of academic backing outside of the context of Guix (SICP was awesome for getting into it) and the whole system is very well documented, with a nearly Arch-wiki quality manual built into the OS in the info pages.

jonotime 3 days ago

Oh, I'm interested. Are you using it on servers, or desktop? My concern is the community is small, while Nix's has been booming.

  • Zambyte 2 days ago

    I'm using it on my server, laptop, and desktop. The community may be relatively small, but it is super active and easy to engage with. As a testament to how active the community is, Repology[0] ranks GNU Guix as the 5th largest repo by number of packages. Ahead of even some much more well known distros like Fedora and Gentoo.

    [0] https://repology.org/

  • bjoli 3 days ago

    I am using it on my home server that serves my web page and also a lot of things for my home network.

    It runs some guix containers and some VMs. Nothing fancy.

    All declared in a couple of files.

gf000 3 days ago

4 years can be a very long time in a project, especially when the "network effect" hit around that time, where the active user count (and contributions) grown significantly.

Also, the language is quite simple, it's just foreign and you felt more at home with Scheme, so you might not have given Nix as much of a chance. This is the classic "simple vs easy" from the Hickey talk.

Documentation is no perfect, but has become quite a bit better over the years, and many of the problems that still linger are simply architectural ones of the nixpkgs repo, irrespective of language and wouldn't be solved in any other language/DSL in itself.

  • Zambyte 2 days ago

    I was familiar with Haskell and had never used Lisp before using Nix (which was before I tried Guix). The fact that the Nix language was more foreign to me than Scheme seems like an important point against the language. Also, I used NixOS for months; it's not like I just hopped to it and hopped away from it after seeing the language. It was months of compounding frustration.

SuperSandro2000 3 days ago

Guix has stripped away the biggest plus from NixOS: the module system and replaced it with a half assed system

  • rekado 3 days ago

    In all those years working on and playing with free software, I still cannot understand the incessant need for badmouthing other projects and calling things "half-assed". What a destructive habit!

  • bjoli 3 days ago

    I mean, modules are just regular guile modules. It feels somewhat clunky, but at the same time you can use guile's introspection to do fun stuff.

    I always found it more flexible, but on the other hand I never liked NixOS modules.

  • tempfile 3 days ago

    Can you say why you think nix modules are the "biggest plus" from NixOS? They don't even make the top 5 for me.

    • SuperSandro2000 3 days ago

      When installing Nextcloud I basically have the following 4 options: - Do everything by hand and read through the docs on every update. Does not sound like fun. - Use someones Ansible playbook and hope that they update it on time. meh, also customizing it is not a walk in the park and requires some effort on my side. - Use the upstream Docker container which has the same customization problem as Ansible - Use the NixOS module. Updates are fast. Configuration changes are being handled by NixOS and I can easily inject a nginx location block in my declarative config. I also can easily describe extra bits like pre-compressed assets which then are served by nginx in my normal workflow without having to think about them at all on updates.

      overlays and the module system are THE killer features. Almost no one else has something comparable to offer and if those powerful features are well understood, they can save you soo much hassle.

      • tempfile 2 days ago

        Isn't that just a function of how well-packaged the service is? If this is what you meant by "modules" then I feel like it covers pretty much all code re-use - including the guile module system used by guix. Is there something special about nix modules that is not just "I can re-use code"?