It doesn't work for people who:
- need a locally installed copy of MS Office or other Windows only software
- IT admins that stopped learning a long time ago
- etc
As others point out, for som of us using Windows or Mac is a hassle. They're slow (30% longer compile cycles, don't even get me started on git), missing important customizability,m no built in universal package management etc.
Funnily enough the main reason is probably that compiling the Linux kernel is one of the most filesystem taxing workloads and also one of those kernel developers care most about.
And for me, I find I have way more trouble doing things on Windows/Mac than Linux. I think it's really more a way of thinking about how a "desktop OS" is supposed to work. People coming from Windows expect things to work the same, and that's just not the case.
Likewise, when I unluckily find myself on some closed-source box, _very little works how I expect_. And man is troubleshooting harder, because there are so many "surprises."
My point is, I think blaming the operating system is not the answer - users need to adjust their expectations and open their mind a little.
This is a somewhat poor analogy, but it's sort of like a Chinese citizen (closed-source user) becoming a citizen of a democracy (open-source user). The government is going to work differently, and you can't claim democracy is broken just because it's so different from authoritarianism.
I like that analogy (even though I am still looking for that pure democracy/open source government). In Linux you have the freedom to do allmost anything with the system, but you have to know what you are doing, as the system usually does not stop you, when you are about to do anything stupid. Windows makes me mad, when it tries to manage me. Like "Yes I really want to use this computer without firewall or antivirus, because it is not connected to the internet and never will be because it serves another purpurse." To do this you need to mess with obscure registry settings, the default behavior of windows is enforcing it and nowdays also updates, because most users don't know or care what they are doing and are used to be told what to do.
So I believe it is good that I can do anything with my system, but everybody started as a newb once so a more beginnerfriendly version could be helpful.
But Linux main problem is hardware support, and fixing broken audio/graphic/wifi driver is something which can drive away very experienced people. (it drove me to ChromeOS for my laptop)
I definitely do agree that "onboarding" could be improved. How I dunno. To me at least, it seems like I hear a lot of success stories from the tails of the spectrum - power users and developers on one side / the complete opposite on the other. And then for everybody in the middle, there's no other way to put it than it's almost a shit show:
On the software side there a million and a half different ways to do everything, and often an insane amount of "noise"/outdated info that needs filtering through to find what's relevant to your specific needs. Even at the lowest levels of the stack there is no "the one way", and I think all that uncertainty (especially from the beginner perspective) can make it feel like climbing a mountain.
Hardware, as you mention, is tricky if you don't know what to look for (and why would most people). At least from a longtime Linux user's perspective, it's incredible how much better things have gotten (since the 2.2 days in my case). But there's a ways yet to go, and it's by far the roughest where it's the most visible (ie the trendy bleeding edge). Part of that is just the nature of "lag" in open source development between code getting written, released, and finally showing up in your distro. That cycle can sometimes take 6 or 8 months, especially for hardware :(
Not that this helps users with existing hardware, but
* definitely always google before you buy (model name + "linux" and read the first page or two of results)
* stick with a non-high-DPI resolution screen
* WiFi, I've had the best luck with Qualcomm/Atheros, Intel, and Realtek (in that order)
* Graphics, get AMD. NVidia cards can work well enough with their proprietary driver, but the out-of-the-box experience is crap. Intel works great too, as long as you don't need it for anything heavy.
* Audio, for me the last time I had trouble was with one of the earlier Sound Blaster Audigy cards. Have stuck with onboard codecs since and honestly never had a problem.
I actually thought about that analogy for a while before, but rather used anarchy/libertarian vs. authorian/dictatorship ...
(basically the same point, only more radical)
Anyway:
"On the software side there a million and a half different ways to do everything, and often an insane amount of "noise"/outdated info that needs filtering through to find what's relevant to your specific needs. Even at the lowest levels of the stack there is no "the one way", and I think all that uncertainty (especially from the beginner perspective) can make it feel like climbing a mountain."
Yes. Even for simple things like a screenshot, there are a million ways. Not a problem in itself, but when you come from windows where this is a "print" command and I did not think there could be a reason to do it differently, but on some distros it is. I run into it a few times, "print" did not work, so googling: You want to do a screenshot? No problem, just install this via terminal, or this, or type in those commands and there you go.. WTF? I just want a screenshot? How is this not standard?
Now this seems to be mostly solved, on XFCE he even asks me what to do with the just taken screenshot, after I hit print (save, view, ..) Oh in general, I really love XFCE).
But unfortunately:
"Not that this helps users with existing hardware, but
* definitely always google before you buy (model name + "linux" and read the first page or two of results)"
this is not for newbs either. Newbs do not know the difference between gpu and cpu. And they certainly do not order single components to put together their PC.
Newbs need a company who does that for them. Compose a PC/Laptop which components who are supported and work well together, so what purism does. But suddenly we are not on the mass market anymore ... and we see the price difference.
So the problem remains complicated, with no easy solution.
Sorry, this is impossible to do once you tried HiDPI. The difference is overwhelming; I consider non-HiDPI screens an obsolete technology like CRTs.
I do use Linux desktops; thankfully, the HiDPI support is much better these days than it was even 2 years ago. Both Gnome and KDE work relatively fine.
Glad to hear support is getting better! I guess I'd be most worried about non-GTK/QT apps
The only thing that ever crashes is the web browser. I keep my computers no less than five years and they run just as fast as new, usually physically failing rather than becoming computationally incapable due to anti-virus and bloat slowing a system down.
The main thing a non-tech savvy user needs to worry about when considering Linux is to generally understand that hardware support lags a bit. So they should do a few web searches on the make/model of hardware they want to use + 'Linux support' before they dive in. If they don't see page after page of glowing success stories, they have their answer and should steer clear of that configuration for the time being. If they do see lots of success stories, read a few of them to see if their eyes glaze over at what is written or if it seems pretty straight-forward and they can follow what's being said. No tech savvy required.
Many, many years ago a decision regarding Window's software management was made and ever since it means that updates take sodding ages and sometimes require multiple reboots and are generally unpleasant. One day that will be fixed - it is not normal.