Just a disclaimer - this is a very opinionated post, I tried to be as objective as possible, but my conclusions must be subjective, it’s just the nature of this topic.
When I started using Linux, back in 2012, the state of Linux distro “market” wasn’t very different: the old behemoths such as Debian, Ubuntu and Fedora were super popular, leading distros, and now, dispite some changes, that’s still (arguably) the case. I think that the only distro that got to that level in those six years is Arch (especially Manjaro, Antergos).
However, we won’t talk about Arch. The most popular Linux distribution is Ubuntu, which is based on Debian, another popular distro. Then there are many other popular distros based on Debian as well as Ubuntu - all the *buntus, Linux Mint, Elementary OS, PureOS, KDE Neon, Zorin, MX Linux, Linux Lite, AntiX, Endless… and that’s only from the top 20 on distrowatch.
This causes us a very large problem - Debian is a truly awful base for desktop distros. I will focus on Debian and distros based on it, since most of my Linux time was on Debian-based distros, but this idea should also apply to Fedora, and probably some other distros, even though the problems might be different.
Ubuntu, Debian and Fedora - they all have one very important similarity, which is visible right when you go on their respective websites. You can download desktop, server or cloud/IoT versions of that distro (Debian does it during install, which is even worse). Is it a bad idea for one distro to do many things at once? No, it’s a terrible idea.
Debian has outdated software, and does everything for “stability”. Yes, in server rooms, this really matters of course, but does it matter for desktop use? I don’t think I have ever met someone who said “damn, I hate that my distro has this much faster version of Firefox with two extra bugs”. The answer is no. Desktop users want to use new, functional software. Distros that provide new software didn’t prove less stable in day-to-day desktop use for me, actually quite the contrary - I had crashes and weird issues on Ubuntu, way more often than on distros with new software like Fedora or Solus.
Ubuntu (instead of mentioning Debian, I don’t have a Debian VM at the moment, so I will use Ubuntu as an example here, but it’s probably the same) has old packages, and very strange packages. For example, in the repo, you can find Ruby on Rails. An old version of Rails, 4.2, which was released on August 20, 2014. It’s unbelievable, who uses that? In modern web development, you install Symfony with composer for PHP, Rails with gem for Ruby or Express with npm for Node.js. I would never host or develop an app with a framework from the repo - this is just a terrible practice. Furthermore, this makes stuff more difficult for new developers. They might try to install a framework they want to learn, which is almost as old as the initial release of React.js and has some weird issues, since it wasn’t installed like it was supposed to be. I remember, when I tried to learn Rails, I did that - I installed it from the repo. Then I had to do some weird reconfiguration somewhere, either becuase of it being old, or from the repo, I can’t remember. Another, similar issue is with PHP, although it’s not that major, just an inconvenience: on Debian based distros, PHP is split into many small packages. You have the “core” PHP, and then you have a package for each PHP extension; php-zip
, php-mbstring
etc, many of which are a complete must. Again, an inconvenience, but so many stupid inconveniences make the desktop experience is way worse. I don’t really think there is a reason why it’s split into so many packages, since you can disable those extensions in php.ini if you really want to - perhaps a more experienced developer can enlighten me if there is a reason. For a comparison - on Solus, you have php
and php-devel
- those are the only packages you’ll ever need. It’s way better instead of cases lik “oh, which one of many extensions do I need to install for this project?”. Plus again, it also introduces issues to beginners that will discourage them from learning: “hey, there is that great thing called composer, which is a bit tricky to install for a total beginner, you should use it, it’s worth it. However, first I will discourage you by not working because you did not install the php-zip
package.” I don’t think there is a good reason to do it that way, if there is - you still got php.ini.
However, this was actually quite advantageous in the past. People liked writing PHP on Linux, because it was the exact same environment as their deployment, which eliminated some cross-platform issues. Now, what should you do if you use a non-server distro? First of all, I do not think that there could be any differences between a Linux desktop and a Linux server with the same PHP versions - if there are, please let me know. Second of all, our computers don’t have 1GB of RAM anymore, and we can run VMs to test with actual server distros. Third of all, it’s 2018 and developers implement automated testing into larger projects. Fourth of all, it’s 2018 again, and we have Docker.
Enough about the devs, what about the regular users? If we have outdated software, something that we’ll hear often is stuff like “just enable this PPA”. Okay, I know what is a PPA, I can enable it, but why should I? Because someone thought that making a desktop distro on top of a server one is a good idea? Why should I bother spending lots of time searching for PPAs if I could have the software I want, only if someone knew how to properly design a distro? Of course the design of PPAs is a security nightmare. However, people who are just getting their toes wet in Linux and don’t know a lot of stuff are scared of the terminal and don’t even know what a PPA is. Even worse, people might not know that their software is outdated. “OMG guys don’t install Linux, game performance is terrible!” - said a beginner, who’s using outdated nvidia drivers, because someone didn’t upload the new version to the repo. What’s your argument? Unstable driver? We have multiple versions to choose from anyway.
So, I think this is the end of my rant, I hope it had proven useful. After using Solus for a little bit, which a true desktop-first distro, I can’t imagine using anything else. The level of comfort and satisfaction from using the OS is just way superior. I recommend you check it out, and I hope that more distros will take a similar approach.