Dogma – a : something held as an established opinion & c : a point of view or tenet put forth as authoritative without adequate grounds. We’re still early into year 2020, so I haven’t read anyone claiming that year 2021 is going to be the infamous ‘Year of the Linux Desktop’ … not yet anyway. After some 28 years of ‘Linux Sages’ prophesying the coming of the ‘Year of the Linux Desktop’ it’s past time to toss that prophesy into the ‘False Prophesy’ trash bin, IMHO.
I’ve been going over a two part article that makes as much sense to me as most Linux developer’s articles make, so it will probably take me another day or two to make a post out of it. (UPDATE: added Tobias Bernard) Two part article by Tobias Bernard (“a designer on a number of Free & Open Source projects, such as GNOME, Fractal, and Podcasts“) & Jordan Petridis (“a GNOME developer, currently working at Centricular. He specializes in Rust, Flatpak, and QA Engineering. His evil master plan is to make GNOME OS happen”) that is based on a “talk” they “gave at LAS 2019 in Barcelona.” Over 2000+ Linux Distros (say 600+ Linux Distros with 3-7 Desktop Environment (DE) choices each and the number goes over 2000+) and here’s more talk about adding a GNOME OS to the totally obscene fragmentation scene that is Linux. Add in different terminology for many of the apps in those Distros, different terminology for folder managers, different terminology for update apps, different installers (many are problematic), etcetera, and the overall fragmentation never ends, i.e. Linux fragmentation is infinite.
What is a Platform?
The word “platform” is often used without a clear definition of what exactly that entails … snip … That’s a lot of different things, but we can group them into four major pieces which are needed in order for something to be a real platform:
1) Operating System
2) Developer Platform
3) Design Language
4) App Store
Everything about Linux can get confusing, e.g. “What is a Platform? The word “platform” is often used without a clear definition of what exactly that entails”!?! Er, OK. No wonder Linux desktop represents only 2% of the worldwide OS desktop/laptop user share…only 2% for decades! I’m not bashing Mr. Tobias Bernard or Mr. Jordan Petridis, just frustrated at my own ignorance. Anyway, they provide a great pic that explains a lot of what was just said to this point:
I’m one of the “End Users” mentioned in the above pic…have been patient with Linux since 1996, but 99.999% of Windows users are not going to be as patient with Linux as I have been (still am, mostly). Linux Fanatics will ignore the facts that Linux has never mastered the basic Wheel Mouse, still has many hardware recognition problems (e.g. simple USB Docking Station), Wi-Fi problems, printer problems, scanner problems, etcetera, and now I find out that there is no “Linux” platform!?! Linux ‘Fanatical User‘ Okra is going to be pissed if she ever finds out her Toy OS doesn’t even have a platform!
Now, in the entire “free software world” is there anything that actually has a platform? A platform with these four “major pieces”: 1) Operating System, 2) Developer Platform, 3) Design Language, and 4) App Store.
Interestingly, the only project which currently has all the pieces is elementary. It has an OS, an SDK, a HIG, and an app store to submit apps to. The OS is largely Ubuntu and the technology stack largely GNOME, but it develops its own desktop and apps on top of that, and does the integration work to make it into a complete consumer product.
This begs the question, why is elementary the only one?
Well, that’s interesting! One Linux Distro that has a real platform, elementary OS, and I probably need to take another look at it.
However, Distros obviously don’t need a Developer Platform or Design Language for their OSes to work for End Users, and most offer some apps & updates. Windows, macOS & elementary OS all have platforms that “healthy ecosystems” can be built on.
Windows 10 has everything, it seems, an Operating System, huge Developer Platform, Design Language, and App Stores everywhere, plus its own Linux kernel and the ever improving Windows Subsystem for Linux (WSL) – sorta like Planet’s healthy ecosystem when compared to macOS & elementary OS much smaller ecosystems…no wonder Windows 10 has become so popular with developers.
The Means of Distribution – too long of a section for me to break down easily, so I suggest reading it yourself, and it is an easy read compared to some of the earlier stuff. It points out how the first Distros “were born.” This was an interesting point on GNOME:
While GNOME 1 was a set of loosely coupled components, GNOME 2 was already much more cohesive and GNOME 3 is now essentially an integrated product. The shell, core apps, and underlying technologies are all designed with each other in mind, and provide a complete OS experience.
Desktops like GNOME have expanded their scope to cover most of the responsibilities of platforms, and are in effect platforms now, minus the OS part. They have a very clear vision of how the system should work, and app developers target them directly.
GNOME and KDE are probably the future of the Linux Desktop Environment (DE), IMHO. Sure, there will be some demand (2% total Linux OS user base is already limited on what it can demand) for the other DE’s, but developers are growing tired of donating their own labor and time for free. GNOME and KDE have strong user bases and strong financial bases, so their working together is going to weaken their already weak competition. A healthy ecosystem has all pieces working together smoothly, i.e. w/o disconnects as this next quote suggests:
Distributions, on the other hand, have not really changed since the 90s. They still do integration work on desktop components, package system and applications, set defaults, and make UX decisions. They still operate as if they’re making a product from independent components, even though the actual product work is happening at the desktop layer now.
This disconnect has led to tensions in many areas, which affect both the quality of the system user experience, and the health of the app ecosystem.
What’s interesting about this situation is that desktop developers are now in the same situation app developers have always been in. Unlike desktops, apps have always been complete products. Because of this they have always suffered from the fragmentation and disconnect between developers and users introduced by distribution packaging.
Fragmentation and Disconnect have been a disaster for the Linux Desktop opportunities, and are two reasons why the Linux Desktop user base stays stuck at 2%. Shared grievances of the App and Desktop developers against individual Distros (Think 2000+) are mentioned as: 1) Release schedule, 2) Packaging errors, 3) Overriding upstream decisions, 4) Distro Theming. More and more developers are growing tired of the individual Distro model, it seems.
The Wrong Incentives – problems with the some 2000+ individual Distro models never end:
1) Perpetual rebasing: Any change that isn’t upstreamed needs to be rebased on every future version of the upstream software.
2) Incoherent user experience: Downstream solutions to UX problems are often simplistic and don’t fix the entire issue, because they don’t have the development resources for a proper fix. This leads to awkward half-redesigns, which aren’t as polished or thought-through as the original design.
3) Ecosystem fragmentation: Every downstream change adds yet another variable app developers need to test for. The more distributions do it, the worse it gets.
“This situation is clearly bad for everyone involved” … yep, and this ends part 1.