Other people are reporting less good experiences, of course, so anecdotes aren't worth too much.
I think the real answer is that macOS runs on very specific hardware, and as such it is much easier for Apple to make sure every part works together. Buying a laptop designed for Linux (or even better: a specific distro) would probably be similar to a general macOS experience.
I recently installed Ubuntu on a certified Dell Precision and was impressed how smooth that went, even with stuff like full disc encryption, secure boot, docking station support, NVidia Optimus, etc. It's not perfect, but neither is Windows. With a bit of fiddling you'll even get features that are unavailable on Windows (like proper S3 sleep instead of "modern standby", which is driving me absolutely bonkers). Even notoriously problematic stuff like fractional scaling on external monitors really worked well. Installing the NVidia drivers instead of Noveau is trivial, even Dell firmware updates for the docking station can be directly installed from the Ubuntu software center.
So while there surely is a lot to criticize about Ubuntu from a poweruser's perspective (like the snap stuff), I must say that I was pleasantly surprised how much better the experience has become over the years.
Try a Linux in system76 or some purpose built hardware, or the vendor installed Linux on a system.
BTW osx on my m1pro has its oddities with non apple external Thunderbird, displayport, Ethernet..
Linux, as in "in the desktop environment", has a HUGE (a can't highlight and stress enough the word HUGE) technical debt. It runs on a graphical server that was designed way before GPUs were even a thing (let alone multi-GPU, variable refresh rate monitors, HDPi, HDR, etc...). And because of all the design limitations, X just can't compete with either Windows nor MacOS (in that specific environment setup that you're asking for). It just can't. Period.
Mir and Wayland were born precisely to fix this entire mess. Mir never really took off (because of community backlash?), while Wayland is... well... it has been "in progress" for +10 years and it's still not "there". It will get there, eventually, at which point it might be able to offer the "it just works" experience. Or it might not. We'll have to wait and see.
The audio system was already fixed. A few times... We jumped from Jack, OSS and Alsa to PulseAudio and now to PipeWire and things look promising, but PipeWire is also in the progress, so we're not entirely there yet either.
Bottom line is: There can't be a distro that "just works", because we're missing the pieces to assemble such a distro.
Regarding "just works" I'm also not sure MacOS is a good example. I'm using both Kubuntu (5 year old Lenovo T460p) and MacOS (brandnew M1 Macbook Pro) every day and I experience more crashes / freezes on the latter. And despite the vast speed advantage of the M1 (one M1 core is almost as fast as my entire Lenovo CPU) KDE often feels much more snappy and responsive. So yeah, modern Linux is pretty damn impressive in my humble opinion.
Easy: Apple hires TEAMS of designers, UX-experts/engineers [...].
The reward incentives in open source environments are not aligned with the required workload. People who seriously compare any modern linux desktop environment to the UX that macOS delivers must be lost in tunnel-vision/confirmation bias, it's not even close.
Also, like some said, as Apple provides their own hardware, they don't have to deliver general solutions.
If you buy compatible Linux hardware then Linux "just works" too. It won't work with just random stuff you found in a basement the same way hackintoshes don't "just work" either.
Also, after the trash fire that's M1 Mac external monitor support I'd strongly dispute the "just works" tag for macOS too.
Good Question. Short answer is here: [0]
The most obvious failure of the Linux Desktop is the sheer alternatives of alternatives madness of not having a simple standard way of creating a sane desktop environment. This is why you have system components not working in an integrated fashion like what you see on macOS.
There are multiple system projects fighting, competing amongst themselves and reinventing the wheel to replace each other in one part of the desktop stack to prove they are the smartest out there rather than have a standard set of components to stick to that does its job well and integrates with other parts of the stack. Not create yet another competing alternative for the sake of it.
This is where the bugs get created and good luck figuring out where the bug is and 'defining' Linux Desktop support. Is it in systemd? Wayland? GNOME? dbus? or maybe it is happening in pulseaudio or was it ALSA? See what I mean? Which distros are affected? Hundreds? or is it 'that' user who has a customized install and tweaked a system component or kernel setting somewhere and it only affects them?
macOS does not have this level of unpredictability in the default install, unlike the hundreds of thousands of Linux distros one has to look at and trace the issue and maintain. That is why macOS, 'just works' on the software level.
The hardware level is a different story where to spoil it; on Macs it still just works. Hence the reason why this ex-Linux user moved to macOS [0]
Additionally, you have to consider that macOS and Linux have different purposes. The later is meant to be used to perform computational work. The former is meant to spy on you. Naturally people who want to spy on you will work very hard for you to not have any barriers - whereas Linux people are more focused on empowering you to make more computational work.
Developers are the ones building software. In a developers mindset, an interface is some sort of API, not a GUI. To them, it’s also more interesting to solve a technical problem than to build a great GUI.
Designers (especially software and UX designers) are not valued to the same degree as developers/engineers in most organizations, including most FOSS projects. Apple is the only corporation that approached this differently from day one.
My own experience as both a developer and designer show me this to be true. Especially the abrasive and uninterested responses I encountered every single time I was offering to contribute to a design overhaul. The developers did not want to deal with it at all. Imagine how a talented but not highly technical designer would experience this community interaction.
All of the above is simply GUI-related. When it comes to interoperability between different projects, ideas and philosophies all too easily clash. And with no project leader to mediate and/or decide, it oftentimes leads nowhere or even sabotage. To illustrate this, you may want to read about the ongoing ZFS kernel integration saga. And that’s not even GUI-related.
Given the current circumstances, mainstream adoption of any Linux/FOSS desktop will never happen.
Linux comparatively works in a very very stable and reliable manner. Sure, low-end laptop with low-end hardware will likely cause trouble but it wouldn’t work well with Windows either.
That Linux distributions work as well as they do is a miracle in itself, I think. Comparing them with the massively vertically integrated software and hardware package built by the richest company on earth is unfair. Notice that whenever anyone has attempted to subsume different parts of the Linux stack (systemd, etc) into one project, the wider community hasn't really gone along with it without being dragged kicking and screaming, and some times it has led to further fragmentation. I don't think this is necessarily a bad thing too, I feel the chaotic evolution,-not-design character of the ecosystem gives us a computing environment that has a better chance of staying free of whatever the clergy of the alternative cathedral model would choose to do, especially when sponsored by amoral corporations.
So, I don't know what you would like to hear. Does Linux "just work" (whatever this marketing aphorism means?). I think it does, for me. My Dell XPS laptop running an Ubuntu LTS for work, a relatively expensive custom-built desktop rig running Debian Testing at home, and my medium-sized server for my personal projects running Debian Stable on AWS have run without any issues for more than a couple of years. Would I trade these for a massively expensive pretty aluminium box running a closed-source system that will take me several months to master as much as I have Linux (and really can never really, properly, understand due to it's closed nature) just to save me probably a couple of hours a year fixing minor issues on my Linux boxes? Probably not.
Recently, I wanted to connect multiple VPNs (work, different data centers) and selectively resolve DNS queries / route traffic, but it doesn't seem possible without a lot of work.
I'm not crazy on the app-switcher's behaviour. I'd like to be able to cycle between all windows on all monitors, not "apps", or "windows from one app" or whatever. I need to install 3rd party software for window tiling. (In fairness, Rectangle is perfect). I hate the lack of decent Gnu binaries (but again, homebrew fixes that).
I hate finder. I want to browse to "/Users/raffraffraff/.config" and end up googling to find the arcane key combo to unhide them. Also, why the hell can't I just click on the path and type the path I want?
For years I've been using Xubuntu with plank (dock) at the bottom and an xfce panel at the top. Haven't had a crash in years. All hardware works. If something isn't too my liking I can change it if I wish. That's a feature, not a flaw.
They also have "PackMan", probably the largest single repository of third party software available to any distro, which eliminates the need to add third party repos for all but the most obscure software.
But, Apple still has one advantage. They make the hardware, and the software. You're always going to have a very variable experience when the two are made separately.
I would say the main problem is that people are mostly Devs and they care more about implementing "this one thing" for themselves instead of thinking about users. It makes sense, it's OSS, you can't expect people to work for free.
KDE somehow gets a lot of things right functionally but the design of the default theme contains very basic mistakes (eg. padding) and several interactions are cumbersome and seems to be there solely to justify tech work that someone wanted (eg. activities widgets and panels on the desktop). I think the pinnacle was KDE 3.
Gnome 2 actually got a lot of things right but was very low on features. They threw away a lot of it with Gnome 3.
That said, I find Mac OS to be pretty bad, UX wise, I generally install Arch Linux + KDE on my Mac devices.
In terms of functionality, if you have supported HW you won't have many problems. Distro take a bunch of terrible decision for political reasons (eg. adopting pulseaudio and systemd as standards) and those are generally the things that will hurt you - but that won't be that much worse compared to your typical Mac OS upgrade (eg. removing python2 in Monterey - who the f approved that?).
I wish there was a company developing a paid OS that works with a custom UI, I would definitely pay for that. Maybe one for the system76 people or similar.
It helps to run on less than bleeding edge hardware for which the drivers are mature. Also, while you still can, to disable Wayland in favour of Xorg.
With that done, on the typical 5 year old laptop, you tend to get (no guarantee, but in my experience) flawless suspend/resume, decent battery life/thermal management, wifi, bluetooth (with the very latest Fedora 35 and Pipewire, bluetooth headphones finally work reliably with all audio profiles), the custom buttons on the keyboard, performant WebGL and so on.
That being said, nothing is perfect. For example you still can't drag a window halfway across between the laptop's screen and an external HiDPI display and expect it to scale so that the two halves are the same size. And some recent gadgets may only "sort of" work. Example, a USB audio dongle (for headphone jack-less smartphones) from the dollar store. Works but only exposes three volume levels: Off, medium and crazy loud. But what do you expect, if the open source drivers all need to be updated by volunteers after the gadget is already out there, use gadgets that are more mature.
What does work is that the resulting machine will be stable. So much so that you can leave it with your 80 year old mom, who lives 8 hours' drive away, and expect less trouble than with a Windows machine (we don't have Apple products).
IMHO, owning the Hardware or agreeing on one existing HW among devs is a good approach. These come to mind:
Dell XPS notebooks, which specifically support Ubuntu or
https://system76.com/ They build or assemble hardware specifically for their Linux distribution Pop! OS
No personal experience with neither, but a colleague uses XPS with OpenSuse and talks about a seamstress experience.
This attitude is mainstream accepted bullying. This belief in adequacy is always given the benefit of a doubt, we let the doubt & deficiency monster in, & expect nothing from it.
There's only one actual specific complaint- about screen recording, which I've seen be very good iut of the box. The rest is unconfirmable slander, is weakly expressed strongly held biases about how great and awesome macos is & how everything needs to be like that.
The cultural snubbing of Linux is such an undertold story. So many cultural forces tear at this project, & bemoan it. The support & maintenance burden is vast, yet so much does get done. But this winning hearts & minds campaign- no matter how many happy & joyous users their are, of all stripes & varieties, all it takes is a couple posts like this one, & everyone will register inadequacy & insufficiency. Even though many of our lived experiences dont match up to complaints, disbelief reigns.
But I've also been helping older neighbours and friends gain or maintain connectivity by installing Linux for them on other hardware, and my experience has been that the "just works" label applies in most cases.
Worst case there will be a single module that requires an additional hardware-specific package, most commonly the wireless card. The problem many moves to Linux encounter is that the device being migrating is the only device on hand apart from a phone, so when the newly migrated machine won't connect to the internet there's no way of easily identifying and downloading the driver or extension needed.
I have migrated laptops which have multiple pain points, and it can be problematic. But, so far, I've not encountered a device where Linux won't "just work" once these initial pain points have been mitigated with the appropriate driver or package.
I think Neal Stephenson's analogy still mostly holds true: Windows is a suburban minivan, MacOS is a Lambo with the hood welded shut, Linux is a tank that can also fly but the instrument panel is correspondingly tricky.
On the other hand... ChromeOS and Android are, by and large, slightly tweaked Linux, and they "just work" for millions of people, so I guess it comes down to what you're willing to put up with as a trade for simplicity.
Myself I have used Linux as daily driver for at least 15 years. The more I avoid extra fancy hardware the happier I get. Saves the planet (well, at least my tiny share of it), my time and my nerves.
What you need is large hardware vendor (like Apple or Google) that takes Linux and really polishes the userland, UI, hardware drivers and curates and integrates all software. All drivers work for their hardware and UX as well for select number of devices. If the software is free, you need hardware sales because all that is expensive and tedious work.
It takes large teams to pull that off. Even big companies like Dell or Leonovo don't see enough profit to do that. They put in some money and resources but not enough to go the last mile. Small Linux companies like System76 don't have resources.
I use linux on most of my computers that doesn't do GUI/gaming, and Windows on the others, macOS doesn't work in any of the cases for me.
In the case of macOS, the company developing it only have to worry about a limited set of possible hardware devices, that they are even designed by them, or tightly approved what components have them on (like sound or wifi chipsets). In the case of Windows, the manufacturers of the devices, usually not Microsoft, are the ones that should make the drivers for their own components, knowing all of internals, and of course, the makers of the computers/laptops being sure that everything works well. And in those cases, usually the OS is already installed by the time it reaches the consumer. But in the case of Linux, you have independent developers trying to reverse engineer, figure out how to interact using sometimes incomplete or outdated specs, and the mix and match of devices in a model of computer may not be all covered. And you have to install linux on it.
Unless, like with Windows and MacOS, you buy a computer designed for and builtin around Linux with it preinstalled, where everything "just works" (depending on how serious about it is the manufacturer, at least).
Regarding software, instead of an homogeneous set of core libraries, rules of user interaction, ways to interact between core applications and so on, you have independently developed applications, frameworks, versions, redesigns and so on, it gives you far more choices, more ways to mix and match the components to make a solution for you, but it may not be consistent, not the same development rate, and you may hit some compatibility issues between versions. Distributions do some work around this, at least for their core apps, but you have too much options, and the applications may not be aware of others or meant to be run in just one distribution and way to do things.
Also, the traditional profile of the user used to be more technically minded one, so the design of a lot of components allow more fine tuning and configuration, at the cost of the usability of having just a few ways to behave. But that mix and match leaves space for misbehaving too. There had been some developments to avoid i.e. libraries conflicts, like snaps, but consistency and interaction between apps and frameworks of different developers may not be always perfect.
For instance my couple years old Thinkpad yoga had some wifi issues in the beginning, but it got better later. There were also some very specific configuration issues, but the defaults got better over the years.
Also, people were making github repos with a one-click "fix a lot of stuff" scripts. So I guess if you have a specific device, it can get better. Like framework laptops, popular thinkpads, those dell laptops etc
It's empty, it completely miss tools I use, and makes automated deploy of them not much easier, so...
IMVHO "just work" means: "i know a certain environment and I'm lost outside it so I ask why others are not equal" like you go to another country and ask why people there talk another language, differently written and so hard to use (for you, of course)...
Windows and Linux distributions have a much harder task because they have to work on every PC, which means some features are simply missing or don't work because they don't know the exact hardware on which their PC will run, for example hibernation in Linux still doesn't work correctly because every computer works differently.
I also have a macbook Pro because my workplace forced me to. I had several problems with gpg, docker, Bluetooth, etc.. the list can go on as much as you like tbh. You can google this if you don't believe me. Not sure why people is under the spell of "MBPs just work" unless they use it as a stone it doesn't.
The blame for this lies with PC hardware manufacturers, and their least-effort approach to integration (which also affects Windows to a lesser degree). The degree of laziness (partly driven by low-margin, tight-deadline project timelines) can make one’s head spin.
Apple simply executes better / different.
If you care about details, you always need to fine-tune. There is no "not changing any settings" for serious work. :)
If you're thoroughly familiar with MacOS, you may have to invest a little time in 'Unlearning MacOS' before you can come to speed with any other OS, Windows included.
I have more issues with Apple OS’s. Latest example: Hotspot from iPone to iPad frequently drops and needs reconnection, Zoom volume is too low and I can’t fix it, privacy buttons are randomly enabled after disabled, etc.
Everything "just works".
Homebrew exists because MacOS doesn't just work very well with a vast array of free and open source software.
Most distros just work on ThinkPads.
- https://silverblue.fedoraproject.org/
- https://endlessos.com/ (based on Debian)
They select the hardware and have created a line of linux-first laptop (and also desktops and servers). They just work. Not only this, but they are also very repair-friendly. Perf are very good too.
You knew the correct answer
1. Branding. Unlike MacOS/Windows, there is no ONE Linux, you have Linux "Distributions". So the brand is split between different entities with different goals and mentalities. The most known, and defaulted to, outside of hardcore Linux enthusiasts being Canonical's Ubuntu. As you can see from the name, it sounds quirky, but alien, hard to embed into people's minds. Others don't do well here either: Fedora Red Hat Linux, Manjaro Linux, OpenSUSE, Elementary, whatever, none of these are relatable, they're just exotic names. Solution: to have a "default" Linux, just Linux, no other names. When you search for Linux on Google you should get the first result to be "Linux" the "default" distribution, with a big download button for the ISO to install, with the default experience, without having to think about what other words surrounding it mean. Just like MacOS and Just like Windows, you should have a proper default. Not saying other distributions shouldn't exist, but they should be an afterthought for the average user.
2. Evangelism. You don't see people queuing for days in front of a Linux store to buy the latest Linux laptop on release day like you have for Apple and Microsoft products because there is no evangelism, no virtue signaling towards consumer vanity surrounding Linux. And I think there should be if you want normal consumers to show desire; mainly because the "competition" is doing it. Instead Linux markets itself towards the other end of the spectrum: bulky, hardcore, geeky, non fashionable by choice, and this hurts general public interest.
3. Corporate. There are features missing from Linux that corporate environments require, either with good reason or only to tick a checkbox, but nevertheless the reason doesn't matter, as long as they require it, Linux should provide them. The list includes: TMP full disk encryption. Active Directory setup with UI tools, reliable screen sharing and recording, system user for administrators to log in remotely, users wiht different privileges to install tools for normal users, antivirus and VPN support for different vendors, a way to push updates and manage certificates, passwords, disk encryption remotely, with UI tools for each. This is not an exhaustive list but just things for which I was denied a Linux laptop in the past at different workplaces. While there has been some improvement here and there, there hasn't actually been a unified, across the board solution for these that is usable by sysadmins in corporate environments, which are not programmers, so they want UI tools to manage these, and ideally the same tools across any distribution, so they don't have to learn a new tool every time they want to do their work.
4. Desktop Environments. Just like with the branding, there must be only ONE default. I don't really care which, or even if my preferred one gets thrown out and my most hated one becomes the winner, as long as there will be only ONE. This is very important, I would even say the most important point. Without stability, comfort, and harmony in this area there will never be an environment of desktop apps available for consumers to enjoy and use for their work. And desktop apps is what normal consumers expect from their OS.
continuing in a comment...
… But if you are including daily casual and professional use, in my experience macOS has been considerably buggier than Linux. Upgrade to M1 caused sooo many headaches with the software I use, but even before this macOS has been getting buggier and buggier every month. Not a single week goes by without having issues with
- Apps like Chrome and Slack bugging out. They can’t find my camera and mic devices, their UI rendering gets corrupted with weird green matrix like artifacts, crashes…
- Bluetooth headphones made by Apple (Beats Flex) keep disconnecting every 15 seconds in a loop (fine with iphone, broken with Pro Max macbook). One day it almost deafened me because somehow Zoom was able to boost volume 10x beyond system maximum, caused me ear pain for more than a day.
- Good luck trying to set up a multi user system with Homebrew and stuff. Everything expects admin access, and even with two admin users you constantly have to fix permissions and switch users to install software. Did I mention everything you try to install and use wants admin access? You get bombarded by admin login prompts as even the most useless piece of software tries to auto-update itself multiple times every week, and sometimes breaking more than itself as it overwrites the wrong folder because of some buggy install script.
- Docker runs like crap. I thought it was bad on my Intel MacBook, I but it is horrible on M1. Surprise surprise, intel emulation is slower no matter how much people claim emulated intel on m1 is faster.
Funny thing is, after upgrading to M1 my main speed gain has not been because of faster hardware, and instead it was moving more work to EC2 instances in the cloud due to not being able to do my work on M1. I might as well “upgraded” to a chromebook.
- Every macOS upgrade breaks apps I rely on, from utilities installed by homebrew to Emacs or chat apps.
- Every time I plug in a screen, or a usb hub with peripherals, the whole thing goes nuts. I then have to start a dance where I spend five minutes turning devices on and off, unplugging cables just to get all of my monitor, keyboard, mouse, mic and cam working at the same time. It often drops at least one of them every time I get back to my desk. Restarts usually fix it (never had to restart a computer so much to fix issues).
- Many "magic" things that "just work" such as Handoff, wireless connection between macbook and iphone, some icloud features are only working 50% of the time. When it doesn't, there's no path to troubleshooting, maybe if you restart your computer, log out of icloud and back in or something it will get fixed.
I can keep going, but overall I am appalled by all the paper cuts of this supposedly premium hardware and software that cost an arm and a leg.