I wrote about software forking before, but some new ideas came to my mind so I decided to share with the community. Forking is one of those phenomena which bridge the gap between sociology, psychology, biology, technology and many related fields of study. Therefore, it is not unique to the open-source world, unlike many might think. People have investigated and artificially produced forks of various kinds for generations. Also, evolution is nature’s way of forking, testing and establishing traits in organism populations. Going along with that thought the open-source universe is really just a highly varied ecosystem. Perfect material for studies! It interests me as the nature of both a biological and an open-source ecosystem is expressed in its capacity, limitations and governing mechanisms. They’re very similar, though some features don’t translate directly. On top of that I would like to add the current turbulent transitions in the open-source world brought about by technologies such as systemd. Biological ecosystems also have those, just in a different form. Onward then!
As I wrote in my previous posts, I consider forking to be a key part of the open-source universe. If we don’t fork, test, explore, etc. we don’t gain anything. Modern technologies become standards, to become stagnant, to end up as relics of the past. If we want to avoid this “stiffening”, we need to fork and do it often. I actually admire people who have sufficient capabilities to build their own distributions. It sure is challenging! Then I look at the BSD world and the GNU/Linux world and see a lot of effort going to waste for all the wrong reasons.
The open-source ecosystem has a limited capacity expressed in manpower. This is showing a lot recently, as more and more GNU/Linux distributions drop 32-bit architecture support or offer a smaller selection of desktop environments. At this rate there might not be enough effort for “just this one distro” in the nearest future. Another problem I see is the motivation behind forking. People should fork when they have some technology that’s worth showcasing. Contrary, we have a lot of GNU/Linux distributions which merely look different, but don’t seem to contribute anything interesting. Why were they created then? Surely, there is some merit to them, no? It stands to reason, though. New generations of open-source citizens have expectations focused on the visage of a distribution, not its technicalities. Is your distro user-friendly? My sister only knows Windows 10, would she be able to use your distro? Do you support KDE, GNOME, LXDE, XFCE, that-other-desktop-environment, etc.? I like choice. Do you guys have easy to use graphical tools for everything? I don’t like the command-line, because it’s scary. Many more similar questions are asked on forums and chats every day. I might sound bitter, but as an “old-geezer” type computer user, I find the concerns of many GNU/Linux users superficial. That’s the current trend, though. A single man cannot stop the flow of a river, much less that of an ocean.
Recently, a DistroWatch follower exclaimed to me that he would rather read about endless version bumping for various software packages than key kernel advancements. Well, if he’s more interested in useless numbers than potential improvements in hardware compatibility or system performance, then I we have nothing to talk about. That also showed me the gap between GNU/Linux people of contrasting dispositions. It’s sad, actually. This silly drive for distributions’ looks and other shallowness tramples the real, technical reason for forking. More importantly, it abolishes the evolutionary pressure that leads to actual progress (selection of more technically “fit” distributions or inventions) and traps the process of forking in a hamster treadmill. We can all see how the same issues arise over and over again, because everyone has to have their own implementation of a specific desktop environment. Contrary, Arch Linux is a nice example of why going with the “sane defaults” produces a stable and highly reproducible distribution base, lowering the potential costs of forking.
What pains me the most about the current progress of forking is that in the GNU/Linux world it is much easier to survive for distributions that are flashy and garner users through visuals. Naturally, such users will not contribute back to the distribution, but at least they constitute a sufficient user base. Technical solutions (forking for technical reasons?) are considerably less popular, even in favorable conditions. Case in point, the birth of the Manjaro OpenRC effort as an alternative to systemd. It received initial acclaim as worth pursuing, but when comparing its overall popularity to the standard Manjaro systemd editions, it’s marginal. The question of today is – How do we stop the pointless forking and focus on real, technical forking?
The BSD universe is completely different. Forks are less common and if any, they always have a very clear niche – firewall, NAS system, cloud server, etc. BSD people understand and anticipate the costs of forking much better. That’s one of the reasons why I believe I belong more to the BSD community, than to the GNU/Linux community. However, I still use distributions of both, depending on the task. Although not a fan of systemd, I do use Fedora for development as its arguably at the forefront of GNU/Linux novelties. My rock-solid system of choice is FreeBSD, though.