Why I Choose Debian Over Ubuntu, Arch Linux, Gentoo, FreeBSD
Created On: 2016-08-21
Debian is my favorite linux distro, as you may already know from my technology radar. In this post, I will tell you what features I need in a distro and why I choose Debian. Note that all distros in title are good ones, that's why I list them for comparison.
Of the choices in title, I have used Ubuntu, Debian and FreeBSD. I had evaluated Arch Linux and Gentoo to a great extend and decide not to use them. I have started to use linux since around 2005. The first distros that got me interested in Linux was Red Hat Linux 9 and Fedora Core 4. I remember the days when I burned Fedora Core 4 and Ubuntu 6.10 CDs and gave them to others when I was in college. And Ubuntu sent free CDs with free shipping all over the world at that time.
Without further ado, let's talk about features I care in linux distro.
Stable Release Instead of Rolling Release
Actually rolling release means no release at all. In stable release, the kernel and package are tested, work together well and the feature set is frozen. Security or critical bug fix patches are provided without breaking backward compatibility. Stable release also means there is a documented process of upgrading old release to a new one. All backward incompatible changes are well documented.
Using a stable release doesn't mean you have to stick with old versions of software. You can always compile the software you do want. For example, I used to compile mplayer and emacs in debian stable. Some software encourage you to use an official build, such as bugzilla. Some software have latest build maintained for Debian stable, such as postgresql. You are definitely not constrained by the software version that is in debian's stable apt repository. A stable release will make sure the underlying system and library is solid, if you want to get latest high level applications, go ahead.
If you want to learn more about how a stable release is made. Read Debian Release Management or FreeBSD's release engineering. If you are a developer or project manager, you know making a good release is hard.
This rules out Arch Linux, which is a rolling release. Rolling release doesn't mean install once and upgrade forever. It's more like every package may break at every upgrade. You need to test software you use in stage environment by yourself if you don't want surprises. This also rules out Ubuntu non-LTS release. I don't call it a release anymore. Ubuntu release is similar to Firefox release these days.
Binary Packages Instead of Source Packages
Unless you only use a fixed set of packages and rarely upgrade them, binary packages will greatly simplify and speed up software installation. Even if you have a fairly powerful machine, it still cause great pain if a low level library requires an update, which triggers a chain of recompiles. I was bitten by this once while I was using FreeBSD. For some dedicated web or database server, this may not be a big problem.
A side note for python developers. Since this year (2016), most PyPI packages are in wheel binary format, which makes installing faster and easier. It's amazing that PyPI is developed and maintained by a single person.
This rules out Gentoo and FreeBSD ports.
Large Selection of Software and Large User Base
The core team should maintain a large selection of software, so if there are problems, they can be exposed and handled inside the project. Large user base means if you hit a problem, it's likely there is already a fix or a work around.
This rules out FreeBSD. Its binary package system is not as sophisticated as Debian's. Binary packages and ports are not part of the official release.
Worldwide Mirrors for Packages
This will speed up operating system install and upgrade, and package install greatly.
Honor Mentions About Other Distro
Redhat Enterprise Linux (RHEL) / CentOS, Ubuntu LTS, OpenSuse, Oracle Linux.
RHEL/CentOS is very similar to Debian, if you prefer redhat's way of doing things, they are good choices. Also, RHEL has the best documentation between RHEL, Ubuntu and Debian. The document quality order from high to low is RHEL, Debian, Ubuntu. Ubuntu LTS, although the release is not as good as Debian, does have a large user base and a long term support (LTS). That makes it a much better choice than Ubuntu non-LTS release. I have not checked/used OpenSuse and Oracle Linux, so I won't remark on them.
If you need advice on choosing a Linux distro, you can leave a comment or email me. Do tell me what you want to do with Linux so the advice could be specific to your use case.