Linux on its own is basically any techies' dream - an open-source operating system with everything up to the user. Linux distributions add on to this with even more options for customization and a better base system to get you started. Without further ado, here are some of my favorite distributions:
5. Arch Linux
Arch Linux is everyone's first step from a pre-built distro to one that is fully user-customizable. What this means is that rather than coming out of the box with a desktop environment, web browser, and other essential apps like Ubuntu or Fedora, Arch makes you start from a barebones system and configure everything else yourself. Want a lightweight server installation? Just install Nginx (or Lighttpd or Apache2 or ...). Want to set up a system for your parents to use? Install Gnome or KDE to get a full-blown GUI set up.
4. Gentoo Linux
Much like Arch Linux, Gentoo is a Linux distribution that starts you off with nothing. To the new user, this may seem like a problem, but the more you use Linux the better this idea starts to sound. Starting you off with absolutely nothing means that every option is up to you to customize - you can pick everything from your desktop environment to your init system with only a few seconds of work. Another cool thing is that in Gentoo, every package is compiled from source. While this results in longer installation times than other distros, it also means that every program is optimized for your current system, resulting in blazing fast speeds. Best of all, the package manager comes with a variety of options such as USEFLAGS (which allow you to customize packages more in-depth) or CFLAGS (which let you change how packages get compiled).
3. Funtoo Linux
Gentoo Linux is a great distro on its own, but Funtoo Linux provides a more modern experience on top of a Gentoo base. First of all, Funtoo is overall a more stable system, making it great for a low-effort desktop system. Additionally, Funtoo uses Git for its package lists, meaning it's significantly faster than Gentoo's version. Nevertheless, Funtoo is missing some of the configuration objects of Gentoo (such as being able to switch to the Paludis package manager), so if customization is your number 1 goal, Gentoo is still your best choice.
2. NixOS
NixOS is one of the most practical distributions you can find at this point, and has become my go-to for day-to-day use. To give a basic outline of what NixOS does, it provides reproducible builds (meaning the same package will result in the same binary even if installed on completely different systems), a global customization system (which allows you to setup any system in seconds with all of your configuration options), and a special installation system that makes dependency issues impossible. Basically, NixOS is the perfect solution to the classic Linux issue of "dependency hell."
1. GuixSD
NixOS on its own is great, but it still leaves some things left to be desired. GuixSD is the answer to some of these concerns. For example, GuixSD replaces the controversial Systemd init system from NixOS with its very own solution called Shepherd. Unlike NixOS, GuixSD only allows fully free and open-source packages in its official repositories (meaning that Steam and NVidia drivers can't be installed out of the box). While this decision has its merits, it makes setting up a desktop system less convenient in my opinion. However, where GuixSD really shines is with its customization language. NixOS provides the Nix Expression Language, which, while useful, has an awkward syntax that can get annoying after a little while. On the other hand, GuixSD uses the established Scheme programming language for configuration and packaging (a favorite for Lisp fanatics such as myself). So if you prefer parentheses to semi-colons, GuixSD might be the choice for you!
I appreciate the time you took to install and test all these distros and then write this article. I'm going to give NixOs and GuixSD a look.
But I can't help but wonder why one would run Gentoo or Funtoo, except on a personal machine when you have a lot of free time on your hands.
The merits of compiling everthing from source for hours, probably days to gain a few percentages of performance seems pointless. And when an upgrade arrives, you get to wait for the compilation to finish.
I agree that using custom USE, C(XX), MAKE, ... flags and options sounds very l33t and cool, but when they cause unstable or unusable binaries, the upstream devs will probably not be too eager to help you out.
Yeah I agree with your opinion on Gentoo/Funtoo actually. It's why I don't use them everywhere. But I do find them both to be very convenient for programming. For example, if you need a cross compiler for another architecture/OS, there is no distro that makes it easier than Gentoo. Also having all the configuration is just something that comes in handy every once in a while, and saves me the effort of having to compile libraries from scratch myself (which I end up doing a ton on other distros). That said, Gentoo/Funtoo are not something I'd want to use in a production environment because updating anything would mean hours of downtime.
Very nice list - and damn.. I think ill have to try some new distros :D
NixOS sounds very interesting :)
.. and followed. :)