Just a little feedback

Hello,

I wanted to give a [small] feedback while trying to install and use Nixos. From my point of view which is an experienced linux user starting from 1998, I wanted to give it a try. I’ve tryed to configure it while using the help of Mistral’s Chat and Google’s Gemini, but none of them suceeded in solving all the issues I’ve met. I admit that those “Ai”s are not performing in such situation (far from that), but it is not a normal situation. It means that your solution for providing an optimal system is not optimal.

I wish you to succeed in going ahead and providing a real secure and optimal system.

1 Like

Nixos is abnormal by choice. It’s a tradeoff we accept for certain benefits we consider worthwhile. Not everyone agrees that it’s worthwhile, and that’s fine. Nixos isn’t going to change that basic stance, though. It wouldn’t be nixos anymore if it did.

7 Likes

Experience with linux doesn’t confer experience with programming. NixOS requires using a programming language, nix, to configure the system.

We have official guides on NixOS Manual and guidance on here as well, not to mention the unofficial communities elsewhere. If you have a question, ask; this feedback doesn’t really tell us anything other than “LLMs [that you have access to] suck” - which is pretty self-evident, since they’re trained on code that is outdated or written by newbies.

9 Likes

I get the need to vent, but unless you provide some details on what exactly went wrong you’re not actually giving any useful feedback.

Anyway, keep in mind that NixOS is a very unconventional Linux distribution: it breaks away with many traditional ways of doing things (e.g. the FHS), so experience with unix-like system doesn’t really translate into experience with NixOS. Probably it would actually be easier to start from a blank slate.

7 Likes

In my experience, you are going to have a better chance at making a good config by looking/taking other’s configs found online rather than battling it out with AI :sob:.

3 Likes

Thank you for the feedback @mandrax88 !

I know it’s annoying, but could you throw out like a bullet-list (nothing too time-involved) in the issues you were having? It might help figure out if it’s NixOS being the wrong answer for your problem space, if it’s something that other LLMs (Claude) might be better at, or something else entirely.

1 Like

I feel it would be nice to put something like that front and center on https://nixos.org/. I was shocked when taking my first steps (and I tend to do lots of research beforehand) and I realized that I had to learn a brand new, full on programming language to configure my system. I’ve been using Linux and software engineering for years and years beforehand but it was still a shock.

1 Like

What would that look like?

One of the first things you see on the front page is “declarative”, and then immediately below that is a screen cast of writing code in a shell.nix to declare a shell. This made it extremely clear to me when I started using NixOS last fall that this is an OS around using a programming language to configure a machine, and that the language wasn’t one I already knew.

I am genuinely not trying to snark; what are specific edits you might consider that might have made it more clear for you?

An example - I did not really understand how much Nix being oriented around maximizing pure function evaluation and lazy evaluation would change how the language acts compared to other more common, less pure, more imperative languages. In some ways I would have liked that communicated better, but I don’t really think there is an appropriate method to disclose this. It’s easy to add lazy/pure to the front page, but the users who will struggle with these aspects (as I did, and and still sometimes do) most likely don’t have the base necessary to understand the implications. I certainly didn’t, and I’m not sure what text would have helped me actually feel like I understood this without grappling with the nix language directly. Is this the same experience you had? Can you help identify text that might have helped both of us?

3 Likes

The domain is nixos.org (the OS). NixOS (the OS) is the title graphic up on top. Perhaps introduce that rather than Nix immediately below. Something like:

NixOS is a Linux distribution configured with a programming language named Nix

I’m thinking the “programming language” aspect of it should be emphasized more to newbies (like I was not too long ago). For reference, here is how Wikipedia introduces NixOS:

NixOS is a Linux distribution built around the Nix package manager. Unlike traditional Linux distributions, NixOS is configured using a functional language that describes the system configuration.

Now that I’m thinking about this, I find it funny how Linux doesn’t really show up on the front page of nixos.org

1 Like

Yeah, unfortunately it does seem that nixos.org has “always” been the home of nix first and NixOS second. To be clear, this is an observation, not an argument against change.

Doing some archive.org spelunking, the first snapshot that I see is from Apr 25, 2008 and starts with:

Nix is a purely functional package manager. It allows multiple versions of a package to be installed side-by-side, ensures that dependency specifications are complete, supports atomic upgrades and rollbacks, allows non-root users to install software, and has many other features. It is the basis of the NixOS Linux distribution, but it can be used equally well under other Unix systems. Read more…

Perhaps this early site was clearer about the differences between Nix/NixOS and it does get “Linux” in there.

You may be interested to know that there is a new docs push and that the website implementation is at https://github.com/NixOS/nixos-homepage.

1 Like

Nixos is a programmers’ linux distribution. I don’t mean to be rude but anyone who’s not a programmer will not think like a programmer in terms of reproducibility, ease of maintenance etc. in fact this is one thing I dislike about the nixos project, it’s a waste of time for everyone to try nixos when there should be a clear warning upfront that please only use if you’re a programmer.

Linux is no longer a programmer-exclusive OS and therefore this isn’t the best linux distribution in that sense by far.

That said, I’ve seen programmers also struggle but thats because there are some rough edges. I’d recommend installing with bare bones configuration.nix and actually incrementally add to it. Don’t try to configure it all at once. Add a few lines, tolerate missing stuff for a week, and so on. Meanwhile take a look at nix pills.

Shooting in the blind here since not much info

2 Likes

I’ve worked on trying to improve the Nix-related documentation jungle for a couple of years as a major part of my job. When I started, my fuzzy intuition was that people need to learn things from the ground up to reasonably understand or at least appreciate the current state. With another two years of distance, I’d sharpen that: you need to actually go through enough of the history with the practical problems encountered that motivated certain changes in design or additions of behavior.

You don’t really get the module system if you haven’t tried building complex expressions from just functions. You don’t get the rationale for the absolute mess of “splicing” in stdenv if you didn’t try to cross compile in early Nixpkgs, coupled with the requirement of not wanting to rewrite thousands of packages when retrofitting transparent cross-compilation. And in fact, I don’t think you get the point of Nix in the first place if you haven’t tried to compile software from source without it, or maintained a system that has lots of lower-level customization and that you want to be portable to other machines to some extent and with sufficient ease.[1] And I imagine it to be hard to get the point of why a pure lazy language seems like the right building block if you haven’t try to grapple with some complexities of programming computers.

This is why I think we observe that Nix instantly clicks for people with a certain programming-related experience, and also why others bounce off. It’s hits fertile ground where there already exists a particular “computational way of thinking”.

So my answer to “what text would help understand” is: everything from the very start of “why do we even care about programming computers”, and every solution to some substantial pain one runs into on the way of trying to actually program those computers. The current core community didn’t need that because they already came here with pre-existing intuitions that were taught somewhere else.

What that means for practical marketing, onboarding, and documentation… I think more of what we ended up doing back in the day: making prerequisite knowledge of a given target audience explicit, and building seamless tutorials that walk through workflows that solve problems people with a given set of prerequisites (and not more) are likely to have. Pick them up from where they are and help them get to where the frontier is as fast as possible.


  1. Although there are people who do all that and still don’t see the point of Nix, because they found their own ways of fixing their problems. ↩︎

9 Likes

On the flip side, I’ve started recommending distros like silverblue and bazzite to laypeople.

These silverblue-inspired distros still provide you with a lot of the same advantages NixOS has, just not the programmatic customization interface, which you clearly didn’t want to begin with.

5 Likes

I’m a non-programmer and long-time Linux user that fell in love with Nix, I agree with what people are saying here.

For a certain kind of person, Nix is such a beautiful concept that the idea of managing your OS with it is just intrinsically attractive and learning its concepts is a pleasure even on its own.

It also helps having had to to deal with the dirty, messy work of managing any OS for any extended time, as was already said.

If you don’t see the need and don’t have the curiosity to learn, NixOS is just not the right distro for you. I think that’s fine. There are other ways to get joy out of computing.

There’s always ways to improve on-boarding and I personally also found the nixos.org page not particularly helpful as a beginner (many years ago), but I don’t think that means the info that was provided was chosen wrongly. I just wasn’t patient enough to first properly understand Nix the language instead of getting my hands dirty.

That made the whole learning process unnecessarily longer and more convoluted than if I actually had first learned the fundamentals, but that’s just how I work.

4 Likes