My guess and opinion on the common blockers to Linux adoption
The big one seems to be the inability to buy a mainstream device with a Linux distribution preinstalled. The few options I know of are niche devices or sometimes single models usually marketed as dev devices. It is also near impossible to even find something without any os installed. Even manufacturer like Framework doesn't offer Linux preinstalled laptops or even just fully assembled ones but without os.
Lacking third party software and hardware support. This is a very real problem and something that can make Linux unviable for specific use cases but also something that will never resolve without higher adoption in personal computing, my guess is at tenth of marketshare we would start seeing it being treated as a serious option. It is amazing that something like wine exists and how well it works but it still can't do everything and it is worse than native support. Similarly not many people are willing to even consider VMs or dual booting for specific workflows that need Windows.
Fragmentation of distros and ways to do things but with standard recommended beginner distros this seems to me more of a perception then a clear problem for most use cases for majority users who would theoretically migrate.
A fallacy where people value a thing perceived to be free less also seems to play a role along with public perception of Linux and its users. Slogans such as Linux is only free if you don't value your time which is ironically IMO more true of Windows these days with the cost usually part of the price of the device and not really perceived or considered by the average buyer.
This seems similar to the usual jokes about vegans and other ill formed perceptions. My guess is that it is the result of people plain ignoring things that have potentional to be uncomfortable along with those with niche opinions being more likely to have considered them and to have strong reasons to hold them along with wanting to at least tell people what they are.
I am just plain ignoring Mac here to be more concise and because I have zero experience with them.
It’s a conference of several factors.
As you’ve noted, there’s not all that many computers that ship with Linux, and the handful that do tend to be from boutique vendors or labeled as dev machines. To make things worse these machines aren’t usually the cream of the crop and come with weird quirks and corners cut; the Clevo and TongFang rebadges sold by the likes of system76 and Tuxedo don’t compare favorably to machines like ThinkPads and MacBooks in terms of feel and build quality for example, and real world battery life is disappointing across the board.
On the software side, the FOSS sphere has largely been devoid of UI/UX designers which lends to the platform’s perception as being for nerds and devs due to rough edges, usability oversights, and general lack of polish. This is difficult to fix because the software that designers like to use doesn’t run on Linux natively, and traditionally the community has not treated designers well, often mocking or trivializing their work.
Finally, I think the Linux world is maybe too eager to break things. Even under the most stable distributions, on a long enough timescale things just stop working or misbehave from time to time, and fixing these occurrences is impossible for most folks who aren’t versed in the ways of the terminal. This doesn’t get talked about nearly enough and I’m not sure is ever going to not be a problem given how there’s some major component or another that’s always in flux.
I can share my experiences. I run Windows (+ WSL2), Mac, and Linux both at home and professionally.
I would opt for a Mac for software engineering / development, Linux for hosting / running a service, and Windows for gaming. Outside of those specific use cases I'd probably default to Mac. For me it has all of the same power as Linux, with far more mainstream software support. Anything I can run on Linux I can pretty easily run on Mac.
I think a significant part of this comes down to price concerns too. If that's at the top of your list Linux is probably a more viable option. You can get Linux running way cheaper than either Mac or Windows.
I still run into weird fiddly little bugs on Linux that I just don't encounter on Mac or Windows. Even if you do encounter them on Mac or Windows you can usually quickly Google to find someone with an identical issue and an easy resolution.
One example, I run a linux distro via VMWare and the scroll wheel on the mouse just behaves super weird on Chrome specifically. It's almost like it's lagging. No issue on anything else with a scroll bar. No issue running Windows via VMWare for the same mouse.
I don't really have any blockers for linux adoption. I'm more of an "all of the above" for OS. If anything I'll probably stop using Windows due to the direction of Windows 11 but continue to use both Mac and Linux. I have a lot of devices.
For me, the only impediment to switching full time to Linux is software lock-in. Microsoft knows where to exercise its monopoly powers: the workplace. In every job I've worked, there is at least one mission-critical piece of proprietary Windows-only software that I must use, either with my own employer or with a client. That makes full-time Linux (or even Mac) use a nonstarter. Which is a shame, because I would love to throw a Linux distro on my PC that I built at home, and never look back.
Nowadays there are practical solutions for developers who want to run Linux while using another OS as well. For Windows, there is Windows Subsystem for Linux. For the Mac, it’s already Unix which often suffices, or you could run Linux in a container using Docker. (There are competing alternatives for doing that I should look into more.) On a Chromebook, there is Linux on ChromeOS (Crostini).
If your main goal is a laptop that runs Linux, buying a Chromebook is probably the easiest way since you don’t need to worry about device drivers.
Also, a practical and inexpensive way to get a separate device running Linux is to buy a Raspberry Pi. Or for a game device, the Steam Deck is very popular. I hear that Framework laptops are decent?
So maybe the question is: what are you hoping for from Linux adoption? In a lot of ways it’s already here. It’s not dominant, but you can get it if you need it.
But I think there’s an ideological component to Linux advocacy that isn’t satisfied by these things, since some of them are insufficiently decoupled from Big Tech.
Docker Desktop changed up licensing semi-recently, and I highly recommend Podman Desktop. While I haven't used it for everything, I've been able to get a VSCode dev container running in it pretty easily.
I use Ubuntu currently and used many distributions before. I am still forced to use the terminal sometimes. I appreciate that you took the time to create a high-effort post. But the sentence "You are forced to use the terminal sometimes" alone covers it.
Linux is a decent alternative in our minds because we conveniently forget all the little things we must do from time to time that regular users are either incapable or unwilling to do.
My work machine run Arch on WSL2. I'm happy now that I can simply pretend that I work in a Linux environment and I don't have to administrate Windows too much past winget.
Nowadays I don't recommend people to run Linux desktop. Back when Compiz & Kiba Dock was a thing, people thought Linux interface was ahead of Windows, but I believe Microsoft didn't actually try. With Windows 7 and later I feel like they actually gave it a try and it surpassed Linux in many areas (while adding antifeatures in the process). Personally I run MATE - I feel like GNOME 2 was the best Linux experience I had, and MATE felt exactly like that, which also means it haven't improved much in the past decade.
I tried donating to MATE Patreon, which I think the entire amount I paid is more than a Windows license, but it doesn't feel like it mattered. Fractional HiDPI doesn't work, Xorg use the lowest refresh rate across monitors, Qt apps use white font on white UI because it didn't care that my GTK is dark themed, WebP/AVIF images not previewing. At this point I gave up - if there's a Linux desktop suite that is paid, yet freedom friendly and be as good as other commercial competitors I might have paid. I suppose that is what stopping people from Linux too - they don't have problem paying for Windows or Apple tax, why use an inferior operating system to cheap on cost and waste their time.
I think a lot of people who aren't IT-minded don't look at it this way. They're buying a Windows laptop or desktop, MacBook, or perhaps Chromebook, and don't separate the hardware from the OS. If you haven't built your own PC or worked in IT in an enterprise that has to manage licensing, you're probably unaware of what a Windows license even costs.
People don't care about computers. They care about what computers do for them. People are taught to use software that discourages them learning about how to use their computers. So they resent having to learn to use different computers. It's that simple.
The fact that Linux has more than a few hundred desktop users says quite a bit about the quality of the defaults, by comparison. Simple analogy: people don't know how their cars work, mostly. But people all around the world delight in the details that make their cars theirs. The bumper stickers, the mirror hangers, the seat covers, the paint colour. And some people ride motorcycles! They're much more dangerous, but provide an entirely different mode of driving, and similar latitudes of self-expression on top of that. You can also drive a moped/scooter, or a sport car, or a van, or a truck, or one of those inverted tricycles. They all have different interfaces and limitations and subjective feelings associated with driving them.
Windows is like an oversized SUV with a speed governor, steering limiters to prevent rolling, and a set of harnesses that requires immense effort to sit in comfortably, in a world where it's the only form of personal vehicle aside from one with automatically adjusting harnesses and a smaller chassis (Macintosh).
People are tired of having their crotches pinched and getting their car to turn properly already, thank you very much, why would they want to have to get used to a new set of demands? Sure, the three point seatbelt and the wide array of design options seems nice, but Verne over there said he pinched the webbing of his hand in the buckle anyway, and it's just...unfamiliar. Easier to just deal with the mandatory ad viewing before shifting into drive than to learn a whole new thing just to get to work.