The flaws of distro hopping and asking other people about their OS of choice
Published on 2022-04-11. Modified on 2022-11-05.
Distro hopping is a term that refers to the activity of computer users constantly installing and trying out different Linux distributions and/or BSD variants, either on bare metal or in a virtual environment, having a real difficult time choosing what to use. Some people believe that distro hopping is a result of boredom, or because of a lack of satisfaction with current choice, or that it's simply a matter of trying out multiple options, but that is not the case. Rather, it's a kind of psychological problem that arise because of a wrong approach being used in the process of determination.
Table of content
- What is the problem?
- Don't ask other people about their choice of operating system!
- The process of elimination
- Is the project actually active?
- Personal preference
- Distro hopping will never help
- Relevant reading
What is the problem?
Often when I am doing consulting work and I ask a client why they are running the OS they have chosen, surprisingly the answer is that their choice was made based upon popularity in the industry.
Using popularity as a determining factor is a flawed strategy, still it's not so obvious. Just because something is popular, doesn't make it right, history have taught us that lesson many times.
At other times, and this is mainly what is happening on an individual basis, people simply feel overwhelmed because of choice overload, a cognitive impairment in which people have a difficult time making a decision when faced with many options, and I cannot blame them, the choice of Linux distributions is staggering.
I personally know of people who find the process of distro hopping debilitating and even depressing, because it can be almost paralyzing. The more you ask other people about their choice, the more you seem to research, the more difficult it seems to get.
The reason for all of this is because the approach is all wrong.
As with every kind of solution, you need to determine and understand the problem first. You cannot make the right choice if you don't understand the problem. What is the problem you're trying to solve?
For the specific use case (you might have multiple use cases), are you going to use the operating system:
- On a server?
- On a desktop?
- On a laptop?
And what is the specific use case? Gaming, server usage, or workstation usage? How important is security? How important is performance?
Once you have determined the problem, you have limited the amount of choices considerably.
Specific hardware requirements can leave you very limited choices, but I am not dealing with this here because then there's no distro hopping, you have been locked in by the vendor.
If e.g. you're mainly using the computer for gaming, playing the latest and most demanding games, then you can easily eliminate any other operating system than Microsoft Windows from the list, because almost nothing will work as well on any other operating system. You maybe don't like it, but the mainstream gaming industry is developing PC games for Microsoft Windows and everything from graphic card drivers to hardware utilization is optimized for Microsoft Windows only. I personally game on Arch Linux with a manual setup of Wine, and many games work very well, some even better than on Windows. I also occasionally game on Steam using Proton. But the fact is that unless you're running a native Linux game, nothing works quite as good as on Microsoft Windows simply because most games are developed on Microsoft Windows and almost nobody cares about the Linux gaming community. Steam has made a big impact and things are improving a lot, but the fact that we still need to run Wine and Proton, rather than native Linux games says it all.
I am not saying that you cannot game on Linux, as I just wrote, some games work even better on Linux with Wine or Proton than they do on Windows. What I am saying is that the industry, almost all of it, is developing games for Microsoft Windows, they don't care about Linux. Just look at the problems with their stupid and ridicules anti-cheat solutions.
Now, back to the topic, you can add other requirements, if you need to. If e.g. you have decided that you don't want to run a closed source operating system on your desktop computer, or you just don't want to run Microsoft Windows because it is much more susceptible to virus infections, or something else, then you move one step down the ladder of choice and eliminate Microsoft Windows all together, which is a really good step.
If on the other hand, you're dealing with a server, then unless you have a very specific requirement, like some hardware that only works on Microsoft Windows, or some tailor made software that only runs on Microsoft Windows, then you can also easily eliminate Microsoft Windows from the list of choices and move on to something open and more secure.
My point is that you need to make a list of requirements, with the most important listed first, in order to eliminate as many choices as possible.
Don't ask other people about their choice of operating system!
Asking other people about their choice of operating system makes no sense. You have a specific problem to solve, so in what way do you think asking other people about their choice is going to help you solve your specific problem?
Not only that, but many people have made their choice based on a flawed strategy. Often they have been affected by myths and rumors, and they themselves are undetermined, and you're now seeking advice from such people?
Stop wasting your time on Reddit and elsewhere with these questions. The majority will provide you with misinformation.
I cannot count the amount of times I have seen someone determine that this or that operating system is "unstable" because of some problem they have experienced with something like their window manager, even though the window manager has absolutely nothing to do with the operating system what so ever.
NOTE! I am NOT saying that you shouldn't ask professional and experienced people for advice. Drawing on the experience of other people is very beneficial. What I am saying is that you should not do so on places like Reddit! With few exceptions, most such posts and answers are useless garbage. Some youngster (or even middle aged person - sigh!) who has been running Linux on his desktop for a couple of years, with little to no real experience except for the general GUI customization and browsing the Internet with Firefox, considers Linux distro X "faster" or more "stable" than disto Y, without knowing anything whatsoever about this issue. He considers - what he experiences as "speed" - the startup time of some application, or lack of his abilities to solve a problem, as a problem with the operating system. And I have even seen (I know you have too), people "fiddling" with different Linux distributions for 5 or 6 years on YouTube, ranting on and on about this or that, like they really know what the flip they are taking about. All of this garbage is what I am advising against.
The process of elimination
Once you have determined the problem and you have decided on the main type of operating system, you need to enter the process of elimination based upon other options.
Options need to be listed in the order of importance to you. Options like e.g.:
- Performance (can be impacted by anything from driver quality to security mitigation).
- System administration control. E.g. do you consider it torture to manually configure things even though it provides you with a greater amount of control?
- Ability to easily compile anything from the kernel to third party software from source, if you need to manually optimize compile time options.
- Binary package managers ability to automatically handle dependencies and/or possible conflicts (perhaps caused by your inexperience).
- Availability of third party software.
- Timely updates.
- Etc., etc.
All of these options need to be determined before you can make a qualified decision.
High levels of security mitigations and speed are often contradictory. The more secure the system is the slower it often becomes. This is because security requires extra "checking" in code during runtime, and it requires higher levels of randomization, which again requires more computing power, etc.
You cannot choose security based upon a general understanding. We all want our systems to be secure, but nothing is truly secure. Again you need to determine what your specific problem is. What kind of security problems might you going to be facing? Are you running a server with a service facing the public Internet? Is the main risk you browsing the Internet with a web browser? Are you going to download and read PDF files? Generally, Microsoft Windows and MacOS are much more exploitable than Linux. And most Linux distributions are more exploitable than FreeBSD and OpenBSD.
Anyone can make a Linux distribution, especially if it is based upon one of the major independent distributions. But just because you can, doesn't mean you should! Many people do so as a hobby, for fun, etc., and they have absolutely no idea about the responsibility that follows if you make your product public and furthermore promote your product (perhaps by no other reason than to feel good about yourself).
I have always, in all my years as a system administration, advised against non-independent distributions or BSD variants, with the only exception being truly professional projects in which maybe a specific project or company is utilizing an independent Linux distribution or BSD variant in their resulting product, and in which they are providing some really useful and helpful tools for the customers or users. Ubuntu is for example, not an independent Linux distribution, it is based completely on Debian, yet it is huge in and by itself, and it is developed by a pretty big company called Canonical.
The reason for my general advice against non-independent Linux distributions and BSD variants is because often these projects are not improving the original Linux distribution or BSD variant in any useful way. All they are doing, you can do so yourself by simply using the original independent product and you will not only get much better control, but you will also become more knowledgeable about your system and setup.
Furthermore, most of these secondary Linux distributions, that depend on the major independent distributions, are small community projects. They are just hobby projects, nothing more. You cannot count on timely updates, security related issues to be addressed or even understood, etc.
When a friend of mine started his first business a couple of years or so ago, and he asked me for advice regarding the choice of operating system for the company service and product, I recommended a specific Linux distribution with a very high level of control, i.e. you need to set everything up yourself (no gui click-click solution). I recommended that they took the time to study the documentation, understand the requirements, and spend some time getting to know their setup. As I said, "it will benefit you greatly in the long run". But the idea of studying documentation and spending time fiddling with configuration was understandably not very appealing, so they went with a non-independent distribution with all the bells and whistles pre-installed and pre-setup.
About a year or so after they started using the distribution, they began experiencing problems with package management and they struggled with the restrictions in the setup provided by the specific Linux distribution. Eventually they decided to change the distribution to something else. Again I provided the same recommendation as the first time, yet again they decided to go for another popular pre-configured Linux distribution. This time only about a week after the change, they ran into serious problems with the main desktop that was tightly integrated into the distribution.
I fully understand the resistance towards my recommendation because few people enjoy spending time studying technical documentation, fiddling with settings, and taking notes about the customizations they make. However, that is only a short term price. You pay that up front, in the beginning, rather than later down the road when everything is much more difficult to change and you eventually end up wasting much more time.
We almost always only hear about the stories of success, but the fact of the matter is that many companies go out of business because they thought they could wait until they became successful to change the tech. That very rarely works! Only the really big companies with lots of money can afford to do that, small companies are extremely vulnerable to breakdown due to choosing the wrong tech in the beginning.
My wholehearted recommendation is to get the tech right from the start! Even if it takes more time. It pays in the long run.
There is ALWAYS a price to pay! You need to determine whether the short term price truly is more expensive than the long term price. Very rarely is that the case.
Make a list of all your requirements and determine the important factors. By doing so, you will eliminate most of the available choices, leaving you with about a handful of valid choices which makes the choice a lot easier.
Is the project actually active?
All the major BSD variants and the major Linux distributions are actively developed. Still, there is a big difference between the projects. OpenBSD is perhaps one of the smaller projects, compared to both FreeBSD and the major Linux distributions, yet both the developers and the community are extremely active.
Locate the source code repository of your candidate project and the project bug tracker and then compare with other relevant projects the level of activity by the number of individuals and the amount of work that goes into solving problems. Join the main IRC channel and mailing list for the project (not all projects has an official IRC channel, but then often the community usually has one), and compare the number of people listed, the level of activity, the helpfulness of the community and the usefulness of the activities. All of this is some of the most important steps in determining how good a community driven project is.
Locate the binary package repository (if the project provides binary packages) and compare the version of the software you need to use to other projects. Is the project running with hopelessly outdated packages? Do these packages still get security and bug fixes? Do they have many unfixed issues? If so, what if upstream abandons such software? Do the project still promise LTS (long term support) even though nobody will be able to actually fulfill that promise? See my article Linux distribution long term support might not be what you think it is for further information about that.
Distro hopping will never help
I am not against trying out different solutions, because that is not what distro hopping is. Distro hopping is people jumping from distribution to distribution without the ability to make a solid choice. It's like you're trying to make a choice about which car to buy by driving all of them. Not only will it be extremely time consuming, but it also doesn't matter whether you really like the sporty Porsche if what you truly need is a four wheeler for snowy terrain.
The more clearly you understand your problem, the more clearly you can determine the proper solution.