I use arch btw but I really hate the bijillion distros we have and the fact that people act like they matter, and yes I get the irony (btw).
When I first started I was really into KDE (I still like the kde effort) but the actual software was just bug ridden and weirdly out of phase aesthetically. Which is why we have other options like gnome and so on.
At the same time I feel like if the Linux community could combine their efforts instead of having dozens of developers working on the same thing with slightly different philosophies we’d be miles ahead of windows and Mac.
It’s complicated because options are good and the effort is welcome and it ultimately grows the community but I feel strongly as though when it comes to developer power and efficiency Linux is really spreading itself thin and it absolutely has to do with core philosophies differing between teams.
I agree to some extent, as there are plenty of distros that don’t do anything significantly different from each other and don’t need to exist. I also see what you mean about desktop environments. While I think there’s space for all the small exotic window managers that exist, I would say we probably don’t need as many big fully integrated desktop environments as there are now. (Maybe we should have only one aimed at modern hardware and one designed to be lightweight.)
That being said, there is plenty of duplication of effort within commerical software too. I would argue that if commercial desktop GUIs currently offer a better user experience than Linux desktop environments it’s more in spite of their development model than because of it, and their advantage has mostly to do with companies being able to pay developers to work full time (instead of relying on donations and volunteers).
There are a couple reasons I think this:
In a “healthy” market economy there needs to be many firms that offer the same product / service. If there is only a small number (or, worse, only one) that performs the same function the firm(s) can begin to develop monopolistic powers. For closed source software development this necessitates a great deal of duplicated effort.
The above point is not a hypothetical situation. Before the rise of libre software there were a ton of commercial unices and mainframe operating systems that were all mostly independently developed from each other. Now, at least when it comes to running servers and supercomputers, almost everyone is running the same kernel (or very nearly the same) and some combination of the same handful of userspace services and utilities.
Even as there is duplication of effort between commercial firms, there is duplication of effort and wasted effort within them. For an extreme example look at how many chat applications Google has produced, but the same sort of duplication of effort happens any time a UI or whole application is remade for no other reason than if the people employed somewhere don’t look like they’re working on something new then they’ll be fired.
Speaking of changing applications, how many times has a commercial closed source application gone to shit, been abandoned by the company that maintains it, or had its owning company shut down, necessitating a new version of the software be built from scratch by a different firm? This wastes not only the time of the developers but also the users who have to migrate.
Generally I think open source software has a really nice combination of cooperation and competition. The competition encourages experimentation and innovation while the cooperation eliminates duplicated effort (by letting competitors copy each other if they so choose).
I’m going to add on to this: aside from every competitor having to build their own product from scratch, a vertical structure of leadership allows for an individual or small group to have massive resources invested into their ideas. Which are so very often deeply flawed ideas.
Have you looked at Paint3D? Microsoft had a vision for a future where we interact with 3D objects in daily life and we would need a basic software to edit them, just like we use Paint to edit the images that we interact with. It’s kind of insane, i can’t even guess how many man-hours were spent on it by Microsoft developers.
And absolutely nobody has ever used it.
You can find more extreme examples, especially if you look outside of software (oh god the military); but Paint3D is one of the more accessible ones, any Windows user can check it out right now.
so, i try to build a CMake project, i know i’m going to be tearing my hair out for a day. i’ll need the reference open just to know whether pkg_check_modules(AB) is searching for library A and assigning that to variable B or vice versa. and i know that once i do get it compiling, it’ll be another day before i can get it cross compiling from my desktop to my arm chromebook or mobile phone.
so i find a similar project written in meson, where a = find_dependency(b) is immediately obvious to me, and i can make sense of the thing or even tweak it a bit without a manual, just by following the patterns. i build it first try; 80% chance it cross compiles already – 20% chance it doesn’t and i can fix that and send the fix upstream (and now 81% of meson projects cross compile).
the CMake camp: “but we all already know CMake, this new meson thing doesn’t make anything easier for us. cross compiling? that’s called QEMU.” and they’re totally right about both of those things. but that’s useless for me.
sure, it’d be nice if the GTK/KDE split (for example) didn’t lead to so much duplication of the non-GUI parts. but if you just say “no splitting” that’s the same as saying “you half go find some other hobby”. it’s really not an easy thing to sort through all the little differences and steer things such that everyone can feel at home in the same project. that’s work, and unless you’re BDFL it means a whole lot of drawn-out discussions trying to convince everyone to change their ways for someone else’s sake.
I use arch btw but I really hate the bijillion distros we have and the fact that people act like they matter, and yes I get the irony (btw).
When I first started I was really into KDE (I still like the kde effort) but the actual software was just bug ridden and weirdly out of phase aesthetically. Which is why we have other options like gnome and so on.
At the same time I feel like if the Linux community could combine their efforts instead of having dozens of developers working on the same thing with slightly different philosophies we’d be miles ahead of windows and Mac.
It’s complicated because options are good and the effort is welcome and it ultimately grows the community but I feel strongly as though when it comes to developer power and efficiency Linux is really spreading itself thin and it absolutely has to do with core philosophies differing between teams.
Possibly relevant xkcd? https://xkcd.com/927
It’s worse imo because developers always put their ego up front
I agree to some extent, as there are plenty of distros that don’t do anything significantly different from each other and don’t need to exist. I also see what you mean about desktop environments. While I think there’s space for all the small exotic window managers that exist, I would say we probably don’t need as many big fully integrated desktop environments as there are now. (Maybe we should have only one aimed at modern hardware and one designed to be lightweight.)
That being said, there is plenty of duplication of effort within commerical software too. I would argue that if commercial desktop GUIs currently offer a better user experience than Linux desktop environments it’s more in spite of their development model than because of it, and their advantage has mostly to do with companies being able to pay developers to work full time (instead of relying on donations and volunteers).
There are a couple reasons I think this:
Generally I think open source software has a really nice combination of cooperation and competition. The competition encourages experimentation and innovation while the cooperation eliminates duplicated effort (by letting competitors copy each other if they so choose).
I’m going to add on to this: aside from every competitor having to build their own product from scratch, a vertical structure of leadership allows for an individual or small group to have massive resources invested into their ideas. Which are so very often deeply flawed ideas.
Have you looked at Paint3D? Microsoft had a vision for a future where we interact with 3D objects in daily life and we would need a basic software to edit them, just like we use Paint to edit the images that we interact with. It’s kind of insane, i can’t even guess how many man-hours were spent on it by Microsoft developers.
And absolutely nobody has ever used it.
You can find more extreme examples, especially if you look outside of software (oh god the military); but Paint3D is one of the more accessible ones, any Windows user can check it out right now.
so, i try to build a CMake project, i know i’m going to be tearing my hair out for a day. i’ll need the reference open just to know whether
pkg_check_modules(A B)
is searching for libraryA
and assigning that to variableB
or vice versa. and i know that once i do get it compiling, it’ll be another day before i can get it cross compiling from my desktop to my arm chromebook or mobile phone.so i find a similar project written in meson, where
a = find_dependency(b)
is immediately obvious to me, and i can make sense of the thing or even tweak it a bit without a manual, just by following the patterns. i build it first try; 80% chance it cross compiles already – 20% chance it doesn’t and i can fix that and send the fix upstream (and now 81% of meson projects cross compile).the CMake camp: “but we all already know CMake, this new meson thing doesn’t make anything easier for us. cross compiling? that’s called QEMU.” and they’re totally right about both of those things. but that’s useless for me.
sure, it’d be nice if the GTK/KDE split (for example) didn’t lead to so much duplication of the non-GUI parts. but if you just say “no splitting” that’s the same as saying “you half go find some other hobby”. it’s really not an easy thing to sort through all the little differences and steer things such that everyone can feel at home in the same project. that’s work, and unless you’re BDFL it means a whole lot of drawn-out discussions trying to convince everyone to change their ways for someone else’s sake.