5 ms·
I love Nix, all of my machines run NixOS, but I think it's 5-10 years out from widespread adoption. Currently the biggest issues have to do with severely lackin
by hiimshort 4y ago
I love Nix, all of my machines run NixOS, but I think it's 5-10 years out from widespread adoption. Currently the biggest issues have to do with severely lacking documentation, lack of developer tooling (missing things like LSP), very slow iteration cycles, confusing or impossible to understand errors, and even naming (Nix refers to the language, package manager, cli, community, etc).
That said, right now it's still the best tool I've ever used. Nix is great at a few things: reproducible development environments, reproducible builds, and reproducible systems. I introduced Nix at my last job to do most of these things and it helped onboarding dramatically: Nix-based development environments with automatic activation, Nix-based Docker image builds which reuse the work done for the dev environment, and Nix-Darwin configuration to configure systems with one command. It's incredibly powerful and you're able to use as much or as little as you like. So the amount of "overkill" is variable.
Of course, the problem here is that knowledge of Nix itself is necessary to build and maintain these things. Due to the reasons outlined previously, it is quite an investment. I believe it is worth it given the stability, flexibility, and efficiency Nix can provide.
- spindle 4y ago> I think it's 5-10 years out from widespread adoption To quote Andy Warhol, "They always say that time changes things, but you actually have to change them yourself." I don't mean you personally! I mean that it's not clear how time is going to fix Nix's documentation. My guess is that at some point a big company will either clone or copy NixOS and enforce some discipline on the documentation. At that point it'll take over the world.
- hiimshort 4y ago> I mean that it's not clear how time is going to fix Nix's documentation. This is my estimate based on the work that has happened over the last two years. There is steady movement in the right direction and the community is organized alongside the NixOS Foundation members to make things happen. Just not at a break-neck pace. Places like Determinate Systems, Tweag, etc are the largest forces currently, but there are plenty of others that are trying to move things along. Over time, that steady movement will land Nix in a place where its pains have been largely dealt with. I don't think we're there yet and, at this pace, won't be for a while.
- spindle 4y agoI have huge respect for those people and I hope you're right.
- nicce 4y agoHow would you compare Nix to Guix? https://guix.gnu.org/en/about/ https://guix.gnu.org/en/about/
- n8henrie 4y agoNew to both. In spite of significant interest and weeks of work, I can't even get Guix installed on bare metal on my Mac nor on my older Acer laptop (a converted chromebook) nor on a raspberry pi. New to Nix and have it running with hardly a hitch on all or these. Reached out to Guix IRC and mailing list with no response (though one helpful HN commenter got back to me -- thank you, and I still need to respond!). Nix community on the other hand has been extremely helpful on their discourse and has been remarkably welcoming to PRs and contributions in spite of me being a noob. Will take another look at Guix in a year, it certainly seems to get many things "more right" IMO, but I can't validate that opinion if I can't get it installed.
- pxc 4y ago> I can't even get Guix installed on bare metal on my Mac macOS is not a supported platform on Guix, right? Is there new/ongoing work to support that?
- n8henrie 4y agoCorrect. > Is there new/ongoing work to support that? Not a chance -- very focused on free, from what I gather I don't think they even allow discussion of non-free software.
- pxc 4y agoAh so have you been trying to trailblaze to port Guix to macOS a bit, then?
- rekado 4y agoThis will not work. There's no port of the GNU C Library for macOS, and there's no free toolchain that would let us build binaries for macOS. Possible routes are: - virtualization (use a GNU system on top of macOS) - arbitrarily cut the graph and graft macOS-built binaries on top of a huge binary blob specific to macOS Neither of these seem appealing.
- SuperSandro2000 4y ago> (Nix refers to the language, package manager, cli, community, etc) Thats wrong. It refers to exactly two things: the language and the cli that implements that and is a package manager at the same time.
- palata 4y agoSo you're saying that it is not a language, package manager, cli and community, but it is a language, a package manager and a cli (and I guess we can assume that talking about the "Nix community" makes sense). How was the parent wrong again?
- SuperSandro2000 4y agoThere is the nix language and the nix program which is a package manager and cli at the same time. There might also be the running joke in German that nix literally means nothing but there is no etc. nix does not generally refer to anything else.
- hiimshort 4y agoSandro is right that the language is called Nix and the CLI is called Nix. Though, part of the trouble is that Nix handles multiple things (eg. Dev environments) and is often referred to separately as the Nix Package Manager. Realistically, people do talk about "Nix" as one of many of these things which confuses a lot of people. Even the name NixOS is confusing for those unfamiliar with Nix.