Linux and the Curse of Fragmentation

  Before jumping into the article, let me define myself. I'm a Linux user and I develop FOSS applications during my free time. I'm using Linux Mint but love all other distributions. I truly wish for the success of desktop Linux.  I love using my computer and it's more like my virtual home. I want everything in my system to play together to give a unified experience. This is why I try my best to install only the GTK apps packaged natively so that they all align with my system theme.

Let's come to the topic. With the recent libadwaita conflicts, the Budgie desktop team has announced to create a new Desktop environment with EFL. According to "The FACTS about GNOME’s plans for THEMES" video from Nick, Elementary OS supports this decision and stressed the idea of treating each distribution as a specific OS. The latest news is from System76 regarding their experiment on a new desktop environment from the ground. This article is not about System76's choice but about the idea of treating each distribution as a separate operating system with its app ecosystem. Already Elementary OS has built its own development SDK and there are plenty of applications built using their SDK. While it is easy for the distribution maintainer and the developer to target a specific distribution, those apps do not blend well in other distributions. It is completely fine and I accept it's the developer's choice on how he/she want to develop the application and who are the target audience. It also makes sense from a distribution perspective because the more users get vendor locked the more beneficial for the distribution.

However, from an end user's point of view, it creates more fragmentation. As a newbie, a Linux beginner has plenty of choices: Debian, Arch, Fedora, OpenSUSE, Elementary, Zorin, other derivatives, etc with GNOME, KDE, Cinnamon, XFCE, LXQT, Mate, Deepin,  etc.

If Linus is confused with choosing a distribution to install, think about your grandma.

Choosing a desktop environment can be fallen into two main categories: whether you are using a Qt-based distribution or GTK based distribution. There aren't that many QT-based distributions other than KDE and LXQT. However, most other distributions are written using GTK. Therefore, for an app developer who wants to write software for all Linux users, there are two primary technologies to choose from: QT or GTK. I have chosen GTK because that will make my application native-looking in my system running Linux Mint. As of writing this article, my application looks good on all other distributions using GTK. In KDE though, it may not feel and look similar to other KDE apps. Developers using KDE may choose KDE dependencies that are not guaranteed to blend with other GTK apps in a GTK based distribution.

 What if every Linux distribution follows the path of Elementary OS? I mean they all have their SDK and the apps developed using those SDKs will look like aliens in other platforms. It will be easy for developers to develop for a specific distribution but it will further fragmentize the apps available for Linux. You will see apps developed for targetted distributions and Linux users have to choose the platform that has most of the apps they want; or else they can choose Windows or Mac where they can get every app they need already. Another question to answer is what will happen to the famous apps like LibreOffice and GIMP? I don't expect them to be ported to every distribution so I hope from the distribution side there will be some effort put in to make them look native.

I like to see GTK still being in place as it has been so far but GTK is developed and controlled by GNOME. If other distribution maintainers do not like the way GNOME takes, it is a no-brainer for other distributions to choose different frameworks. However, it would be great if all get together and fork GTK or choose a common framework (like QT) and maintain it without injecting their distribution-specific philosophies. If Linux kernel can be maintained without conflicting with all those stakeholders, maintaining a GUI framework is feasible too. However, in reality, coding is easier than coordinating with all other distribution maintainers on common ground.

Comming to System76's decision on writing a new distribution from the ground, I am all in for a new distribution. If we said "why another distribution?", we wouldn't have Budgie, Mate, Cinnamon, or any other amazing distributions. I'm glad System76 decided to go with GTK. I wish other distributions conflicting with the libadwaita issue also to share some core technology to avoid fragmenting Linux apps.

As a FOSS developer, I am already packaging my application for different distributions; please don't make me put more effort to make my application look native in all distributions. At the same time as a Linux user, I want all applications I am using to look the same in my system.

No comments

Post a Comment



© all rights reserved