It would be funny if this weren't true right in this thread. The best example I can point to is Brave's only option to install on Linux involves a blob of CLI commands: https://brave.com/linux/
Linux has to grow beyond being built by and for mechanics.
The problem with this attitude is that it makes it far more difficult for Linux distros to gain more varied users. Specifically those who are new to development, or (not really relevant in this case) not developers at all. Instead of pointing to a CLI for everything, which I personally love and support for what it is, it might be worth encouraging companies to develop more cross-platform software that allows for a choice of operating system without many sacrifices.
Being different for difference's sake doesn't mean much if it's not useful.
It's like saying a certain screwdriver must be made with a smooth ball point to be different from other screwdrivers. Nevermind that nobody can figure out a use for such a screwdriver and everyone happily (or begrudgingly) goes back to using flathead, Philips, and Torx drivers.
Most people don't care about free-as-in-freedom software or open-as-in-auditable source code, they just want to run Office and Photoshop and maybe play some snazzy games. A tool must first and foremost be useful in order to achieve mainstream appeal, Linux has consistently failed to do so because it is flat out not useful for most people.
If achieving the "Year of the Linux Desktop" is a real goal of the Linux community at large, some fundamental changes in ideology must happen:
* Acceptance or at least tolerance of proprietary source code (eg: Nvidia drivers). Most users don't care what philosophy of code they're running, they just want their computer to work and be useful.
* More emphasis on GUIs and a refined user experience. Neckbeards might only want the CLI and consider anything else below their ability to care, but most users want a good GUI like in any other widely accepted operating system.
* Accept that there can be such a thing as too much choice. Developers don't want to look after their code on five dozen flavors of Linux, some consolidation and stabilization of distros and runtime environments are a hard requirement to beating the chicken-or-egg problem.
* Less hostility to new users and outsiders. The elitism within the Linux community at large is stupid. Being a CLI wizard doesn't give anyone a higher horse to ride on, and it's not going to attract new users anyway.
* Less marketing emphasis on liberal and FOSS ideologies. They're all fine concepts to have, but most users care about free as in free beer, not free as in freedom. Cater to what users want in order to win users over.
Linux can be many great things, but its ideologies and philosophies hold it back in a wider world that values usability and practicality more than freedoms and openness.
If "Year of the Linux Desktop" is not a goal, then Linux can continue as it currently is. The enterprise world will be Linux's stronghold for the foreseeable future as before, and the desktop world will continue moving on with Windows/Mac/iOS/Android like always for better or worse. But Linux can't then complain the desktop world keeps disregarding them, because priorities are different and Linux chose to be incompatible.
The inability to let is why we also have an insane number of distros that continue to fragment Linux. While diversity of ideas is good, it kills user adoption by anything other than techies.
But I love Linux. I want some distro, any distro to gain large market share. The linux world is too shattered, too splintered to make a dent in the consumer marketplace, and it needs a large, popular distro like Ubuntu to create focus. Adding this sneaky extension breaks user trust and splinters the linux user base.
As others have alluded, greater Linux is awash with too many choices for every component, like a walmart supermarket, not to mention CADT-driven development.
There is not a universe that exists where I would give an unsigned, non-reproducibly-built, proprietary third party binary control of the terminal I use to access code and systems of my clients, or send a third party any data about them. It would be negligent on my part.
Also most of the capable sysadmins and CLI junkies that I know use Linux. Not supporting that first is a strange choice.
As cool as this idea is, I feel the only way I could ever responsibly have it is by ripping it off and actually making it open and available to all platforms.
We must remember that the BSDs in particular exist in a reality where you can issue a single source control checkout command and you have the whole tree literally to do anything you want with, most of it even with a license amenable to anything.
Linux isn't quite in this world in such a dramatic way as the BSDs, but it exists very close to it.
So "choice" isn't some abstract concept that comes later as an afterthought, it's kind of the whole point in a very concrete and literal sense, in a way that other systems do not offer. Naturally you will see people with their workflows based on that, or some indirect form of that. And these people have working systems, no matter how much people wax philosophical and longingly on forums for "missing" features that are irrelevant to people with already working systems.
So from a certain perspective it's a bit weird to see something like a slide here say that such a system needs to address 99% of people. Who says? It's working fine in its niche.
I think there is also a very simple difference of opinion and difference in personality types here, in a way that I don't often see people acknowledge. On one side you have people who crave authority, order, centralization. One component to manage boot and hardware. One UI toolkit. Choice is bad, freedom is slavery. (OK, just joking on that last one.) Then there are people who just happen to like it the other way. I'm glad that some systems don't bring up a GUI until I ask for one, and even then, it can be whatever I say it is. I find it pleasingly simple that the OpenBSD upgrade instructions basically tell you to run tar and patch. These things are an anathema to those whose personality types are more aligned with, say, OS X, but they work well for me.
The same can be said about Firefox, or any larger project. Yet people still do it and some people generate their own Linux distros using LFS. Just because it isn't painstakingly easy to build like a Go app, doesn't mean that it isn't possible or isn't done. Searching Google will find a lot of people forking Chromium and adding their own changes.
You say the web like this isn’t also true of basically every Linux disto in existence. The ability to build software against many different sets of libraries is what enables the Linux userspace to work.
Not true, they could express that very idea and give their reason behind it. Plenty of people agree and use things from Suckless on Arch. Others simply prefer native experiences.
The fact is that it's harder to explain that constructively, but that's kind of ironic coming from people saying the Developer took the easy way out.
That's what I keep telling linux people. We need more distros, not less. More window managers, more gentoo only websites, more binary blobs & more incompatibilities. Besides, reverse-engineering proprietary platforms is lots of fun.
Sure. But unless you're deploying custom Linux builds, what does that get you, exactly? I have a number of packages on my computer I don't use, and I am not being hindered by their existence. I instead use my brain cycles for creating new software & systems, not retooling the existing one to no end.
edit: Please understand that I'm not saying a fully customizable Linux doesn't have its place. It absolutely does. But when you're trying to crank stuff out, having to stop and tweak/fix your system simply gets in the way. Well, it gets in my way, at least. :-)
Linux has to grow beyond being built by and for mechanics.
reply