Reflections on NixOS
zenhack.net
Reflections on NixOS
1–10 of 102 posts
Re: Reflections on NixOS
#2I agree with the author that per-user configuration is a bit overkill for the common use-case of a single user machine, but you have to go out of your way to use it (via the "nix-env" command), so I think it's a bit of a non-issue. Since Nix can be used from any user's home directory anyway (this is often how it's used on non-NixOS systems), it's not necessary for Nix/NixOS to contain this per-user feature; however, by doing so they gain a huge space optimisation by re-using the same store. The same can be said for NixOS containers, which I don't use but I see why it's there.
As for making packages available at runtime, that's what the "propagatedBuildInputs" attribute is for. Sometimes Nix can actually automagically figure out runtime dependencies, since it looks through files as they're installed to see if they contain references to other store paths; if so, those paths are added to the runtime dependencies.
Re: Reflections on NixOS
#3It's great to see such articles as they dive deep into psychology when it comes to new technology. It's really hard to unlearn.
It takes effort to realize that the promised gain is bigger than the pain coming from doing what we're used to doesn't work.
Re: Reflections on NixOS
#4As a NixOS user I've certainly encountered some of these issues. While Nix and NixOS are really nice, the first thing I'd recommend to a new user would be to learn the Nix language, as it's pretty much a requirement for getting anything done. I agree with the author that per-user configuration is a bit overkill for the common use-case of a single user machine, but you have to go out of your way to use it (via the "ni…
Re: Reflections on NixOS
#5Disclaimer: I'm core NixOS developer It's great to see such articles as they dive deep into psychology when it comes to new technology. It's really hard to unlearn. It takes effort to realize that the promised gain is bigger than the pain coming from doing what we're used to doesn't work.
As long as you have that attitude, you'll be driving away users. How do you think you can improve your software to make it easier for users to "unlearn" stuff you think is bad?
Re: Reflections on NixOS
#6Disclaimer: I'm core NixOS developer It's great to see such articles as they dive deep into psychology when it comes to new technology. It's really hard to unlearn. It takes effort to realize that the promised gain is bigger than the pain coming from doing what we're used to doesn't work.
It sounds like you're blaming the users for not "unlearning" enough to be able to use NixOS. As long as you have that attitude, you'll be driving away users. How do you think you can improve your software to make it easier for users to "unlearn" stuff you think is bad?
It's unfortunate that humans can't trust each other enough that saying "You'll like it after a few months" is good enough, but it's also an inevitable fact of life; for starters, the speaker might be mistaken. I don't think NixOS is for everyone, at least not yet.
And it's hard enough to run arbitrary software that, yes, you do need to learn the Nix language. In most cases it's as easy or easier to package the application for NixOS than it is to run it without packaging, which on the one hand is a benefit to the Nix ecosystem, but on the other hand can be a little annoying. There are workarounds...
But the workarounds require some unusual understanding to begin with.
I think one of NixOS' major flaws at the moment is documentation. There's the wiki, but it's both somewhat outdated and very much not comprehensive. As for Nix, it's been best explained in a series of blog posts, and as good as the Nix Pills series is, you have to find it before you can read it. It's also somewhat short on HOWTOs.
Most people don't like to spend hours writing documentation, though.
The existence of NixOS, and work done on it, is a massive positive externality. Even if it doesn't catch on, it's going to inspire half a dozen clones in the next decade or two. Unfortunately I don't see a good way to get more effort put into it, especially the boring bits (such as documentation)...
I suppose this comment is my way of trying to change that.
Re: Reflections on NixOS
#7Disclaimer: I'm core NixOS developer It's great to see such articles as they dive deep into psychology when it comes to new technology. It's really hard to unlearn. It takes effort to realize that the promised gain is bigger than the pain coming from doing what we're used to doesn't work.
It sounds like you're blaming the users for not "unlearning" enough to be able to use NixOS. As long as you have that attitude, you'll be driving away users. How do you think you can improve your software to make it easier for users to "unlearn" stuff you think is bad?
This won't ever change, but people might.
I'm not blaming them, I feel their pain.
This is common in technology all around, think about driving a car for 25 years with manual transmission and then trying automatic transmission.
Re: Reflections on NixOS
#8Earlier quoted context omitted.
It sounds like you're blaming the users for not "unlearning" enough to be able to use NixOS. As long as you have that attitude, you'll be driving away users. How do you think you can improve your software to make it easier for users to "unlearn" stuff you think is bad?
As a near-fanatic NixOS user (now!), I agree with both you and GP. The learning curve is brutal, so it took me a while to get started, but it's paid off several times over. It's unfortunate that humans can't trust each other enough that saying "You'll like it after a few months" is good enough, but it's also an inevitable fact of life; for starters, the speaker might be mistaken. I don't think NixOS is for everyone,…
Re: Reflections on NixOS
#9Disclaimer: I'm core NixOS developer It's great to see such articles as they dive deep into psychology when it comes to new technology. It's really hard to unlearn. It takes effort to realize that the promised gain is bigger than the pain coming from doing what we're used to doesn't work.
Re: Reflections on NixOS
#10As a NixOS user I've certainly encountered some of these issues. While Nix and NixOS are really nice, the first thing I'd recommend to a new user would be to learn the Nix language, as it's pretty much a requirement for getting anything done. I agree with the author that per-user configuration is a bit overkill for the common use-case of a single user machine, but you have to go out of your way to use it (via the "ni…
For example, consider if every package that contained bash scripts would put bash in `propagatedBuildInputs`. Then I could not use a different version of bash for my user environment than those packages I installed used!
Also, `propagatedBuildInputs` are not even propagated into the user environment, the attribute that does that is `propagatedUserEnvPkgs` (not sure if that name is fully correct), and it is very sparingly used within nixpkgs.