I agree with the overall point being made by @tbenst. Nix has a pretty big learning curve, and as a community, it would be great if we could do as much as possible to make it easier for new-comers to get started with Nix.
In this thread, there seems to be a conflict between people who want to keep NixOS as pure as possible, vs people who want NixOS to be somewhat beginner friendly.
Historically, it seems like NixOS has tried to be as pure as possible, even if it means making it harder for some beginners. I don’t necessarily disagree with this approach, but it is possible this is turning off many beginners.
I’ve been in the Haskell community for a long time, and I’ve recently started playing around with Rust. Both Haskell and Rust are known for difficult learning curves, but it seems like the Rust community is doing much more to help out beginners (mostly with documentation, convenient tooling, and a helpful compiler). I don’t have any hard numbers, but it seems like the Rust community is expanding at a much more rapid pace than Haskell.
I’m worried that Nix and NixOS are going the way of Haskell, rather than Rust.
Maybe one approach would be to create a sister distribution to NixOS that maps /run/current-system/sw/
into /usr
, /lib
, /bin
, etc as appropriate. Depending on what you had setup in environment.systemPackages
, a lot of software would hopefully run without too many problems.
New users could start off on this distribution until they are sufficiently skilled with Nix, and then they could eventually graduate to the pure NixOS.
@danieldk
I have found much steeper hills to climb than the lack of /bin/bash
, such as learning the Nix language and all the conventions of nixpkgs
While this is definitely true, I don’t think it is a good reason to not have /bin/bash
. Just because we haven’t removed all difficulties doesn’t mean we shouldn’t try to remove some difficulties.
And you can’t really use NixOS without knowing the Nix language and nixpkgs
.
I’ve seen lots of users who get started using NixOS even though they don’t know the Nix language very well, or have a good idea how nixpkgs
works. In fact, I would even bet that the majority of users (or at least a large minority) don’t have a super strong understanding of the nix lanuage or nixpkgs.
Most users start out by copy-and-pasting nix code they find online. Some users never really graduate past this stage. And that’s completely fine.