When comparing Gentoo Linux vs Nix os , the Slant community recommends Gentoo Linux for most people. In the question“What are the best Linux distributions for a backend developer?” Gentoo Linux is ranked 5th while Nix os is ranked 11th.
Ranked in these QuestionsQuestion Ranking
Pro Full control of the software
Pro Portage's emerge is powerful
Pro Can be officially systemd-free
Gentoo's default init system is OpenRC. Gentoo also officially supports systemd-free Gnome and udev. Users are free to choose any init system they want.
Pro Great for anyone who is serious about learning the intricacies of Linux
It's useful for both beginners and professionals. For the installation, Gentoo offers various types, which are referred to as stages. Basically meaning how in depth you would want to go into the process of installation. For beginners it's useful to choose for a starting distro due to its various stages that can be very time consuming but beneficial as you learn the composition in general of Linux.
There are many architectures available for Gentoo : i386, x86-64, PowerPC, PowerPC 64, sparc, DEC Alpha, ARM, MIPS, PA-RISC, S390, IA-64, sh, m68k.
Pro Documentation and community are second to none
Provides a whole handbook to refer to during setup and usage.
Pro A very large collection of software is available
There are more than 19.000 packages available in the official repository. And even more with overlays.
Pro Gentoo does not impose a standard look-and-feel
Pro Live USB
Pro Fully customizable
The usage of advanced features like USE flags makes it more customizable than any binary distribution.
Pro Can by optimized to any given CPU by using proper compile flags
Since everything is being built on your PC you can tune the code to make use of your CPU.
Pro Upgrading the system is extremely reliable
Since NixOS stores all its packages in isolation from each other in
/nix/store and because of the declarative configuration model, upgrading NoxOS systems is extremely reliable. Furthermore, it gives you the ability to roll back upgrades.
Pro Extremely reproducible state of installation
Every package in your system is generated from a configuration file. This makes it very easy to reproduce that environment. Just copy the config file into a new machine and it's done.
Pro Versatile snapshot system
You can use and test snapshots without rebooting. Booting into snapshots or test configurations is possible without risking the system's stability.
Pro Great for Haskell development
It has all of hackage in it's package manager (which is confusingly named "nix" as well) due to being based around hashing and allowing you to compile in a sort of virtual machine (really just changing the PATH variable temporarily) it solves many of the versioning problems that you commonly have with cabal. Here's a tutorial (there's many others as well) http://www.cse.chalmers.se/~bernardy/nix.html.
Also I should note that you can use the package manager a la carte on Mac and most any linux distro.
Pro Has docker like system built in
Pro Allows parallel configurations for multiple projects
As everything is isolated, you can have on the same machine multiple configurations to meet project requirements that would be mutually exclusive on other OSes.
Con Not beginner-friendly
You have to read a lot of instructions to start, even if you are familiar with Linux.
Con Customized package installation can take a long time and cause installation failures
The Gentoo package management system allows you to configure what compilation flags packages should support - i.e. specific processor flag support (SSE, SSE2, etc.), -O1, -O2, -O3 optimization, etc.
If you accept one of the default flags, Gentoo downloads binaries from the server. However, if you decide to optimise, it can and will download all source packages and start compiling allthe programs and libraries on your system. If your chosen flags don't work with a particular library, installation will fail.
Con Has no live images with graphical interface
Full installation is hand-made with a CLI (Command-Line Interface)
Con Since everything must be compiled it takes a lot longer to update
And if you have to update the kernel or some heavy software like Chromium it can takes hours if not more on weaker hardware.
Con The configuration language is hard to figure out
For good reason. It's a purely functional language. However not even close to bash.