Hacker News new | ask | show | jobs
by AnIdiotOnTheNet 2853 days ago
3) Hardware support is dependent on kernel version, regressions occur.

4) There isn't a universal anything. There's no base system for developers to depend on, there's no consistency to the interfaces, widgets, clipboard behavior, or anything else.

5) Pretending there is no line between "system" and "application" and relying on a package manager and repositories is a terrible paradigm with a long list of problems roundly dismissed and ignored by the community.

6) The community is terrible. If you have any issues you'll be told you're using the wrong distro (no matter which distro it is), you should read the manual (even if you did), you don't really want to do that (I do, actually), "normal people" don't do that (I care why?), and finally that the source is available and you can fix it yourself.

7) The whole system is a gigantic Rube Goldberg machine of disparate components developed largely in isolation and slapped together by whoever decided to build a distro today.

And probably about a hundred other reasons. But rather than try to solve any of them the Linux desktop community prefers to pretend that they don't exist, and the REAL problem is that Microsoft is a bully and won't let companies install Linux by default or something.

This guy maintains a more comprehensive list: https://itvision.altervista.org/why.linux.is.not.ready.for.t...

To be fair, some small progress has been made and Windows is currently being sabotaged by Microsoft, so Linux Desktop may yet win by default.

2 comments

Thanks for the detail and the link!

I was perhaps a bit naive and continue being so...

It feels as though the issues you listed seem solvable? As in, the work to create a distro & craft a community that solves the above problems is work that can be monetized, possibly in a RedHat-like way. I don't know much about RedHat's customers, but I'm curious what percentage of them use RedHat for desktop GUIs.

It'd for sure be a lot of work, particularly the hardware support since you'd have to convince other vendors that it's in their best interests to play nicely. It really feels like there's huge potential upside here because you'd be able to drive down prices (with open source development) and have contracts on the enterprise support angle.

They are totally solvable. They're so solvable, most of them have already been solved several times. The biggest issue is that very few within the Linux Desktop community seem willing to untie behind these solutions and instead prefer to keep everything fragmented, or cling to some backwards way of doing things because of some nigh-religious adherence to "the unix way", forgetting conveniently that even the people who created unix went out and improved on it because it really wasn't that great.

Google basically did solve a lot of these problems with Android, but doesn't seem to have any interest whatsoever in the Personal Computing Desktop market. Not surprising, their business model depends on keeping people in the web browser as much as possible, and the reality is that it isn't a very lucrative market anyway.

I'm not even entirely sure that's a bad thing. Now that I'm watching Microsoft turn their once-decent Personal Computing Desktop OS into a steaming pile of user-hostile garbage, I'm not sure I want the future of personal computing to be in some company's hands. Sadly, it is my considered opinion that the current open source community is largely worse.

> The biggest issue is that very few within the Linux Desktop community seem willing to untie behind these solutions and instead prefer to keep everything fragmented

I suspect this is the case with most open source communities that don't have a clear "market leader".

But if it's all open source someone can run with it and solve all the things if they wanted to, right?

I think the community could solve most of the problems if they wanted to, yes. Actually, I think if you could find and organize all the people who really want an open source desktop and have congruent goals towards a personal computer OS that embraces simplicity, consistency, and user empowerment, it could happen without having to deal with the mainstream Linux Desktop community. Unfortunately there doesn't seem to be anywhere for these people to find each other, no project to rally behind, no community to engage with.
Very few people use Red Hat (RHEL) as a desktop. It simply gets outdated and has (intentionally) very long release cycles. Most Red Hat shops I have been part of use Fedora for the desktop, and ship the RHEL/CentOS on the server.
> And probably about a hundred other reasons. But rather than try to solve any of them the Linux desktop community prefers to pretend that they don't exist, and the REAL problem is that Microsoft is a bully and won't let companies install Linux by default or something.

At least with 4, 5 and 7 they don't get solved because they are also strengths and a large part of the reason linux is so successful. I also don't see why you complain about package management but also complain about it being a rube goldberg machine, the former fixes much of the later which is still an issue with windows.

> linux is so successful

In the server and single-purpose appliance market. Otherwise you're talking about Android, which doesn't use a package manager, in the traditional sense, to install applications.

> I also don't see why you complain about package management but also complain about it being a rube goldberg machine, the former fixes much of the later which is still an issue with windows.

The former is utterly unnecessary if your system isn't a Rube Goldberg machine slapped together from disparate components. Windows installers may suck too, but that's just whataboutism. There is absolutely no reason that application management should require anything other than simple every day file management utilities like "copy" and "delete". See: DOS, RiscOS, MacOS classic, NeXTStep Application Bundles (inherited by modern MacOS), Rox Filer AppDirs, and AppImage.

> In the server and single-purpose appliance market. Otherwise you're talking about Android, which doesn't use a package manager, in the traditional sense, to install applications.

But android does rely on those slapped together disparate components you think are a negative. It's a large part of it's success that they could use components relevant for a portable computer and discard the parts built with servers in mind.

> There is absolutely no reason that application management should require anything other than simple every day file management utilities like "copy" and "delete". See: DOS, RiscOS, MacOS classic, NeXTStep Application Bundles (inherited by modern MacOS), Rox Filer AppDirs, and AppImage.

Ok, now how do you update all those apps with a single command? Most of those existed in a radically different security environment to today's, the last thing I want is 15 copies of the same library at random versions scattered throughout the file system, think of how many long patched vulnerabilities they contain.

Android basically just uses the kernel. It doesn't even use the GNU libraries and utilities. Google has built their own userland on top of the kernel.

> Ok, now how do you update all those apps with a single command?

You assume that this is worth all the headache and rigid inflexibility a package manager brings to the table, I don't think it is. Beside's, it's actually very straightforward: Each application has a manifest specifying a URI that can be checked using a known protocol to determine if updates are available and then the can be applied as a diff against the current version. Searching a file hierarchy is not rocket science, so just have your single command search for all AppDirs (AppImages, Application Bundles, whatever) and check each for updates, then present a list to the user so they can choose which ones they wish to update.

>the last thing I want is 15 copies of the same library at random versions scattered throughout the file system, think of how many long patched vulnerabilities they contain

The last thing I want is to be locked into a repo where the only applications I can safely install are at the whim of some third party maintainer and my only alternative is usually to just compile from source. I can't move applications around, have multiple versions of the same application, and they break easily when libraries get updated underneath them with incompatable changes.

Really common libraries, like cryptography libraries, should be part of the OS base system (a concept that does not exist in Linux) and updated with that, developers need not ship their own copy, and having a few copies of 200k libsomebullshit.so laying around isn't that big a deal. If you're incredibly paranoid about security we have sandboxing nowadays, use it (unsurprisingly, containers are hugely popular for Linux, hmmm...).

None of this is rocket science.