I love the core concepts behind Nix, and have great respect for their engineering abilities. However I am skeptical of their ability to achieve broad adoption beyond their current community of passionate experts.<p>There are two reasons for my skepticism:<p>1. User experience. Unless you're one of the "passionate experts", the Nix user experience is pretty terrible. The learning curve is punishing compared to competing systems.<p>2. Elitist culture. In my experience, the Nix community is too smart for its own good. Their technical foundation is so far ahead of mainstream systems, and their technical design so satisfying to passionate experts, that they've forgotten how to live a day in the shoes of a mere mortal. Try pointing out flaws in the user experience, or the need to offer more pragmatic ways to migrate existing systems, and you will be met mostly with derision and reminders of Nix's superior engineering. But superior engineering is not everything. If you want to spread the amazing potential of Nix to everyone, then you need to compromise with a flawed, imperfect world. You need to meet users half-way, and guide them to the promised land, instead of waiting for them to show up on their own. Otherwise someone will come along that will do it for you.<p>All this is eerily similar to what happened to functional programming communities.
I have been using nix for a while to build binary packages for crashcart[1] and I really love the premise of isolated source-based builds.<p>Unfortunately, over time I've become quite frustrated with the pull-everything from the internet model. If you are building packages from scratch each time instead of pulling down cached version using the nix command, the build breaks quite often.<p>Mostly it is silly stuff like the source package disappearing from the net. A particularly egregious offender is the named.root[2] file being updated, which will cause everything to fail to build until the sha is updated in the build def.<p>I don't know that there is a great solution for this problem. Maybe there needs to be a CI system that does from scratch build of all of the packages every day and automatically files bugs. Alternatively, a cache of sources and not just built packages could ease the pain. This issue probably affects ver few nix users, but it has demoted my love of nix down to "still likes but is somewhat annoyed by".<p>[1]: <a href="https://github.com/oracle/crashcart" rel="nofollow">https://github.com/oracle/crashcart</a>
[2]: <a href="https://www.internic.net/domain/named.root" rel="nofollow">https://www.internic.net/domain/named.root</a>
Hurray!<p>I love Nix and I have been looking forward to this new makeover of the UI with the 'nix' command. It seems like the original command line usages developed incrementally over time, making them quirky and inconsistent, and so it is really welcome to have them redone based on long experience. (Thanks, Nix hackers!)<p>Seeing this released as Nix 2.0 is a really lovely surprise for me this morning :).
I guess this is a good place to plug the fairly new bash completion support for Nix (including Nix 2.0)[1]. For those like me who can't stand using a cli without completion.<p>[1] <a href="https://github.com/hedning/nix-bash-completions" rel="nofollow">https://github.com/hedning/nix-bash-completions</a>
> <i>It introduces a new command named nix, which is intended to eventually replace all nix-</i>* <i>commands with a more consistent and better designed user interface</i><p>This is pretty nice. I've been using nix on my Mac for more than a year now, it works well on mac. But the separated commands are not easy to remember and the help documentation is also separated. This change really improves command line UX
Heh- after a many years haitus from running any kind of UNIX/Linux at home, I was thinking about installing a Linux based distro and NixOS was near the top of my list to try. How does this 2.0 Nix release effect a new install of NixOS- should I wait a bit for a corresponding overhaul of NixOS to come out? I suspect theoretically it's not necessary, but wondering if NixOS will be tracking this Nix release in some way shortly... Anyone know?
It looks like they're at least attempting to work towards user friendliness, which is by far my biggest complaint.<p>My other big complaint is that when something goes wrong its damn near impossible to figure it out. Trying to figure out why I couldn't get postgres working with postgis was nightmarish last year sometime when I last tried nixos.<p>I'm still really optimistic that this will someday replace arch for me. I just don't know <i>when</i>
As a nix user for several years this is pretty exciting. I hadn’t been following the 2.0 development, but I was really hoping to see a mention of support for something like a .gitignore equivalent when hashing directories from the filesystem. Seems that that isn’t in this release :(
It appears that by using a CoW filesystem like Btrfs I can have some of the same advantages of using Nix:<p>- Parallel installation of multiple OSes sharing the same storage pool<p>- Snapshot/rollback<p>How does using Nix compare to using a CoW filesystem such as Btrfs or Zfs?
How do I upgrade my existing Nix installation? After updating the nixpkgs-unstable channel, nixpkgs.nix is still 1.11.16 (and nixpkgs.nixUnstable is a 2.0 pre-release).