Hacker News new | ask | show | jobs
by qw3rty01 747 days ago
as someone who has been working to make nix my main system for several months now, there are some very clear areas of improvement that would make things easier:

- [any] documentation, the majority of nix modules are undocumented and so the only way to figure out what settings are available is to find and read the source code (and even then it could be using a module to convert the definitions to the target config format, in which case there’s even more guessing, but at least the official documentation of that package gives you something)

- coding standards; lots of modules have different variations of camel case, snake case, adjective-noun, noun-adjective, etc so it’s not clear what the correct format of a setting is for an arbitrary package

- flakes just need to be both an official feature and set to be the default way to interact with nix, it just has too many upsides

- Better errors, the current errors are just horrible to read and you end up picking out 1 or 2 spots in several paragraphs of irrelevant code snippets and stack traces

- up to date resources, since the official docs aren’t very beginner friendly, third party resources end up being the way people learn (vimjoyer has been a godsend), but half the time when you try to use those resources, they’re out of date and lead to broken nix configs, having solid official updated documentation to help new users get started in nix would go a long way here

3 comments

Seriously… flakes are still “experimental”… come on… this is starting to look bad at this point… I have been refusing to get onboard while the entire community’s preferred methods are “experimental”… I don’t want to base my entire OS install on experimental features…

The flakes situation felt like the sort of thing that the next major release would have finally solved… it’s absolutely baffling to me that this is still not offical and enabled by default… I haven’t seen any new decent documentation in over year that doesn’t use flakes.

Pull requests welcome?
I'd recommend taking a look at Guix as a kind of alternative implementation of the idea of Nix. It has its own usability issues, especially surrounding nonfree software and a much smaller community, but it addresses some of the issues you comment on.
nix flake update then nixos-rebuild switch --flake and encountering an error is nightmare fuel. There is always a moment right after the error occurs where it feels like you'll never figure it out. I've always manage to up to this point but man...