You are welcome, it took some time and I actually accidentally swiped back and deleted like 6 paragraphs but hey.
Now, my only contention here is that competition, true competition, is good. I’d say you always need at least 2 major nearly equal players in any of these fields
I dont know… KDE is using Qt, GNOME is using GTK. KDE breaks all the time, GTK attracts many developers of small software with nearly no customizability, but that works.
KDE apps are still looking a bit dated but refuse to follow the “padding everywhere” BS that GNOME, Windows 11, MacOS etc use.
I dont know what the word “competition” means in FOSS. These are not companies serving customers, fighting for marketshare. These are just products by and for the community. It sucks that KDE does all the cool stuff, but is inherently memory unsafe as f*ck, GNOME not even having the most basic features but being very stable, and nobody caring about Cosmic really.
Wlroots is nice, and it would be really cool if all projects could just use that. Wlroots is not complete like KWin.
Actually, XOrg, Linux, GNU, there are so many projects that just dont have an alternative and that helped to create products that all work but have a different look and feel. Under the hood they where all just fancy XOrg.
I think there are problems with monopole projects that are bloated and eat up more and more subprojects. This makes 0% sense and should not be done.
The Linux kernel is a mess. It is full of random vendor blobs for XYZ hardware, poorly written code (according to Jeremy Soller) and everything on every machine.
Look at windows. It kinda “feels weird” to have those branded “AMD Radeon Driver®” display in the task manager. But the fact that they show up, nobody gets that. They are seperate processes in the equivalent to Linux userspace. You can restrict them, give them permissions etc.
It “just works” but its horrible. Any random code by any weird manifacturer just gets thrown into the Kernel, because Distros can’t unite on how userspace is supposed to look like. So instead of fixing that problem and putting all drivers into userspace so users can just use what they actually need and just remove the rest, we have this huge and not even FOSS blob that runs everywhere.
I think I want to switch from Fedora Kinoite to something like NixOS, as I think building the kernel for your actually used hardware, removing everything else, is essential for security.
The next project is systemd, which works well, is somewhat nice to manage (I still find it very confusing to create services but I guess this is nice?) But it is pretty horrible.
It is a huge binary, a single one, always running. You would need to fork it and remove and replace stuff to not break it. It is a de facto standard and makes no sense, why would you
- bundle everything in a binary
- make it impossible to replace parts
- use a memory unsafe language with no sign to switch
Their Github issues are insane, I cant imagine anyone even wants to look at 1k open issues. This would simply not be the case if it was split up. Could still be used as a bundle, but if (like with rust rewrites of GNU core utils, like uutils) people would rewrite parts, they could test them seperately and slowly move the project to Rust for example.
So yeah, monopole projects suck if they are not modular. Desktops should work on the same things though, to make them work well. GNOME is supposedly very specific about mutter so nobody wants to use it, but KDE could possibly switch to wlroots if it has feature parity with Kwin and that would really reduce useless duplication of work.
You dont need competition, just talk to people in the same project, everyone has different goals.