Live data from Hacker News

NixOS and my descent into insanity

ersei.net

31–40 of 120 posts

Re: NixOS and my descent into insanity

#31
post #13

NixOS is awful except for everything else out there. The learning curve is... steep. The documentation sucks. You have to learn a new OS because a lot of your prior Linux knowledge no longer applies. But, man, it's so slick when you get it working. It's so easy to understand your system and how it's set up. There's no weird stuff changing between updates that you don't know about. You don't have to merge new configur…

I agree that NixOS (and Nix) is difficult to learn and the documentation is generally poor, which I realise is what you’re getting at in your comment,

But I do think we should keep in mind what an incredible project NixOS is. NixOS isn’t just some other Linux distro, repeating pretty much what every distro has done for 40 years. It’s a complete rethink of how a Linux distribution and package manager should work, from first principles, in a way that I don’t think has ever been done before. That’s an incredibly bold thing to do. That alone, as a research project, would be an impressive achievement. But it hasn’t just ended up as some researcher’s PhD thesis. It works in the real world, and it’s built a large community despite its learning curve.

So despite the terrible docs and UX, I have trouble agreeing that it “sucks”!

Re: NixOS and my descent into insanity

#32
post #8

Earlier quoted context omitted.

As a fish user on NixOS, I'd say nix is still worth looking at. The fish-related issues came from trying to manage the whole of the fish configuration with Nix. I think that's a fairly niche thing to want to do.

But isn’t that the Nix promise? That I can have a fully reproducible system defined by a few configuration files?

What I've come to realize is while yes nix leads to absolutely bullet proof "reproducible" environments, there is seemingly very little care or thought about anything that comes before the build, i.e. the user experience for creating a configuration.

Re: NixOS and my descent into insanity

#33

Le sigh, another day, another group of people turned off on NixOS for completely legitimate learning curve, documentation, and support reasons that are nonetheless heartbreakingly fixable. It’s never the user’s fault . Home manager is a well-intentioned and technically well-executed piece of software that is nonetheless a disaster as the “how to do dots on Nix” story, especially for newcomers. We need “Home Manager L…

I like YADM for managing my dot files and expect that even if I switched to NixOS, I would keep using it because it works well and I have no complaints about it.

Re: NixOS and my descent into insanity

#34
post #17

> It looked cool, and I was getting kinda sick of Zsh being slow in big Git repositories. Sorry, what? If your zsh is slow in a big git repository, that's on you, not zsh. I honestly have a hard time taking anything else in this article seriously after reading that. edit: the article is good. I was being harsh. Nix is horrible, and yet I refuse to use anything else.

That’s a shame because the rest of it was pretty insightful and descends into a deep hole of interesting hopelessness. I think you took things too seriously, they clearly are lark hunting - which is beautiful to watch because that’s where learning happens.

Re: NixOS and my descent into insanity

#35
post #7

Well this is enough to put anyone off Nix. Such a shame because the abstract idea is obviously a good one. But every time Nix/NixOS comes up the story is the same. Terrible UX. Terrible documentation. Is Guix any better?

I tried and found it even worse. Impenetrable language, worse documentation, less packages unless you use nixpkgs anyway...

Re: NixOS and my descent into insanity

#36

Would Chatgpt help in accelerating the learning process? Does it understand Nix well enough to be useful?

I tried using Google Bard, another LLM for learning Rust, and it had no awareness that solutions were specific to certain versions of software. So it would give me confidently wrong solutions for outdated versions of the software.

Re: NixOS and my descent into insanity

#37
post #3

Earlier quoted context omitted.

Sad to see the Nix team can't get UX right. Their technology is on point.

There's a massive push to improve UX but it'll take time for things to happen and it's only really just in the last few years that nix has gained the popularity in industry for there to be more than just a few groups spending engineering hours towards improving things.

I think this is the right path. Get the guts working right and stable, then make the useful thing usable. That last bit is by far the hardest, but trying to make something usable useful is impossible.

Re: NixOS and my descent into insanity

#38
post #4

As a fish user interested in Nix this put me off looking into it.

You can always take the easy way out and just symlink stuff. This is what I actually prefer. Then I can edit those files in their native format and just check the updates into my .config/home-manager git repo

    home.file.".gitconfig".source = config.lib.file.mkOutOfStoreSymlink ./dotfiles/git/.gitconfig;
    xdg.configFile."nvim" = {
        recursive = true;
        source = config.lib.file.mkOutOfStoreSymlink ./dotfiles/nvim;
    };

Re: NixOS and my descent into insanity

#39
post #7

Well this is enough to put anyone off Nix. Such a shame because the abstract idea is obviously a good one. But every time Nix/NixOS comes up the story is the same. Terrible UX. Terrible documentation. Is Guix any better?

Ironically, there are lots of blog posts documenting how people worked around the poor documentation, but seemingly few fixes being made in the upstream docs themselves.

The excellent Arch Linux Wiki demonstrates that high-quality community-maintained docs are possible.

Re: NixOS and my descent into insanity

#40
post #8

Earlier quoted context omitted.

As a fish user on NixOS, I'd say nix is still worth looking at. The fish-related issues came from trying to manage the whole of the fish configuration with Nix. I think that's a fairly niche thing to want to do.

But isn’t that the Nix promise? That I can have a fully reproducible system defined by a few configuration files?

Generally, Nix's strength is allowing for reproducing software behaviour, yeah.

I'd say NixOS's declarative config more/less covers the config files, where on non-NixOS you'd edit the files under /etc (and hope you didn't break anything).

Whereas, Home Manager's declarative config is more/less the stuff underneath $HOME or the XDG config dir.

Turns out that a few things with fish shell don't work with a purely declarative config. (e.g. the universal environment variables are stateful).

For myself, I don't rely on writing all my configuration in Nix files. I configure fish shell using config.fish. (Though I do use HM to symlink the config file).

Post reply on HN