I needed rock solid distribution for my tweaking with Linux. With NixOS, I can be sure that if there is a problem, I can rollback to previous working version. No other distribution permits this as far as I know.
I've been using NixOS for 1.5 year and I can't imagine going back. The projects grows fast and has the potential to become a major distribution.
NixOS is like a dream come true if you want full control over your system and is especially appealing to Programmers who think functional.
- Reproducible configurations as declarative specifications
- Basically unbreakable - if a configuration renders the system unbootable, you can just choose an earlier configuration from the boot menu.
- The nix package manager is just awesome. No more package conflicts - Every package lives in it's own space.
- User level package installs (no sudo needed)
- Maybe to much control for less advanced users
- To date no reproducible user configurations (configuration.nix for the home directory)
-> It is too tempting to put user specific configs into the system level specification
This is simply the best distribution at the present time. It is not perfect yet, due to its youth, but the ease of use on the user side and the great reproducibility from the developper's side make for a versatile distro, working well on both server and desktop.
NixOS and guixSD both have the revolutionary reproducible packaging system, which allows for rollback of app installs among other cool things. In other distros, you could try to achieve that with ZFS or BTRfs & snapper , but good luck with that (it may not work for you).
Arya Distro from India (see below review) has much simpler install scripts and next to no packaging.
Reproducible builds sure are the way of the future -- combine that with KDE power, and your left with no alternative Linux but NixOS ! Downside is that ARCH has more packages and more GUI than nixOS.
The capabilities of NixOS for controlling the state of your system are breathtaking. For example:
* The configuration of your entire system is described in one, compact file and it can be reproduced at will on any other machine from just this one file. No more editing a dozen different configuration file formats in /etc!
* You can roll back to any previous state of your system (modulo garbage collection) without having to use a particular filesystem such as ZFS.
* Packages will continue to work indefinitely regardless of updates to the rest of the system, because they reference the exact versions of all the dependencies they were built against.
Packages don't exist for some obscure or unusual things (although it's very easy to create them yourself).
Vendor-supplied binaries (debs and rpms) don't work out of the box, although there are tools for wrapping them as NixOS packages.