
NixOS 20.03 is released - Drakonis
https://nixos.org/nixos/manual/release-notes.html#sec-release-20.03
======
dpezely
It's worth noting the "My experiences with NixOS" discussion from a few days
ago:
[https://news.ycombinator.com/item?id=22877355](https://news.ycombinator.com/item?id=22877355)

As someone just getting into Nix and NixOS myself, I found one particular
comment there offers an excellent summary after talking with a few others in
person as well:
[https://news.ycombinator.com/item?id=22891648](https://news.ycombinator.com/item?id=22891648)

Essentially, after an initial investment of time for learning curve, the huge
payoff comes when migrating to another machine because of system-wide
configuration being reproduced with precision.

In my case, moving back and forth between laptop and desktop/workstation was a
pain point with Xubuntu. A delta of less than one hour between `apt-get dist-
upgrade` on two devices was enough to translate into divergence of versions in
some packages.

We've come a long way since days of tsx-11, but I digress.

~~~
spease
I love the idea of Nix, but it is pragmatically unusable in practice. I
installed it on my work laptop running OS X, and doing anything with it would
often lead to searching through obscure gitlab or forum posts. The core
commands are unintuitive. Try to get ‘cargo install’ to work for common Rust
tools dragged on for weeks of on and off incidental work on the side. When
something pulled in the Network Foundation SDK, I couldn’t figure out how to
specify it with nix-shell. After multiple attempts asking in chat, nor, did it
seem, anyone else knew either. Eventually I found the package I was trying to
compile in nix and just gave up on getting packages with HTTPS dependencies to
work with ‘cargo install’.

When it got to the point of reinstalling docker, I just gave up and used brew.

My personal box runs Arch Linux, which uses pacman. It’s fast, and the
commands are based on combining a common set of letters.

To me, nix is the epitome of the problem with OSS. A brilliant idea crippled
by abysmal UX because enough emphasis isn’t put on what’s necessary for people
to use it if it isn’t the center of their life. If I were working on nix daily
and focusing on it constantly, I’m sure I’d feel the commands are obvious
because I’d incidentally memorize them all. But when using it as just one of
many critical tools, it simply demands too much attention for someone to be
productive.

That isn’t to say it’s worthless. It’s still an impressive achievement and I’m
glad someone did it. What will hopefully happen is that someone will write a
new ’nix’ frontend tool to make it simple and intuitive.

~~~
112
There are tools that require a big time investment to learn, and Nix is one of
them. It much more "pragmatically usable" than other OSes once you learn all
the bits and pieces. It's kind of like Vim. But yes, it's quite frustrating at
start that you can't do seemingly simple stuff with ease.

------
eeh
Great! Over the past 2 years I've found it worth migrating more and more of my
infra to NixOS. Now my laptop, media server, router, and VPSs all run NixOS.

From Debian+cfgmgmt to NixOS I've gone from a feeling of dread that my machine
wouldn't be rebuildable, to confidence they can.

A build tool to construct a Linux machine conceptually makes more sense to me
than taking a distro and repeatedly mutating it.

NixOS's model is similar to React's: build the system/value you want, and
NixOS will perform the diff/apply to your actual machine.

The downsides are:

* It doesn't look like an ordinary Linux machine. No FHS.

* CLI tooling is a bit awkward.

* Short support for stable releases. I see NixOS being suitable for rolling release, even in a production environment. NixOS's repo and your own repo can easily add multi-machine integration tests so NixOS machines can use familiar techniques like CI/CD/push-on-green.

