I decided to give Ubuntu 20.04 a try on my 2015 15" MacBook Pro. I didn't actually install it; I just live booted from a USB thumb drive which was enough to try out everything I wanted. In summary, it's not perfect, and issues with my camera would prevent me from switching, but given the right hardware, I think it's a really viable option.
The first thing I wanted to try was what would happen if I plugged in a non-HiDPI screen given that my laptop has a HiDPI screen. Without sub-pixel scaling, whatever scale rate I picked for one screen would apply to the other. However, once I turned on sub-pixel scaling, I was able to pick different scale rates for the internal and external displays. That looked ok. I tried plugging in and unplugging multiple times, and it didn't crash. I doubt it'd work with my Thunderbolt display at work, but it worked fine for my HDMI displays at home. I even plugged it into my TV, and it stuck to the 100% scaling I picked for the other monitor, so it looked ok.
The next thing I did was install Zoom, since I'm using that a lot during this COVID-19 quarantine. Trying to download and install the .deb from the website didn't work because of unmet dependencies. However, installing the snap package using Ubuntu Software worked just fine.
At this point, I should note that WiFi and sound worked out of the box. That was a relief!
The microphone worked in Zoom for the first meeting, but not for subsequent meetings. Restarting Zoom fixed the problem.
My screen brightness keeps changing based on changes to the ambient lighting. This happens in macOS too, but somehow there it's a lot less noticeable and disruptive.
The camera did not work by default. By following these instructions, I was able to get the camera working, even in Zoom, but the picture quality was grainy / pixelated. The picture quality was similarly bad in Cheese, suggesting a driver problem. Observe:
On this page, it says, "The driver will complain about 1871_01XX.dat (or similarly named) files missing. This error can be ignored. The .dat files contains sensor calibration settings that will improve image quality. The error looks something like this: Direct firmware load for facetimehd/1871_01XX.dat failed with error -2. Ignore it." I'm guessing that's the problem. I found a guide here in order to install those files. I reloaded the driver. I think I did everything I was supposed to do, but it didn't seem to fix the issue. The documentation for the driver says that it's experimental :-/
Along the way, I had to "enable the multiverse" in order to install unrar. I told my kids about it, but they told me that that doesn't mean I'm an Avenger. Hmm, maybe I have to switch to Arch :-/
I'm guessing I wouldn't have this problem if I were using hardware with better support. On the other hand, my son said he was having the same problem with his 2007 Thinkpad.
Just to check that everything else was sort of behaving, I tried YouTube. No problems.
Next up, because my wife and I have been watching "Once Upon a Time" on Netflix together, I decided to give Netflix a try using the builtin browser, Firefox. It asked for permission to enable DRM. I said yes. But, then Netflix didn't actually work:
Switching to Chrome fixed the problem.
I guess now is the time I cop to the fact that I actually prefer the hotkeys in macOS. The way the command key works is generally more consistent, even in the terminal, and I really like the built-in Emacs hotkeys that work pretty much everywhere--I have those built into my fingers even though I'm not an Emacs guy.
The last few times I've used Linux on the desktop, I ran into other problems such as the following:
There's no Linux version of Backup and Sync from Google. The last time I tried it, the built in support for Google Drive was not very good. In the past, I tried Insync which worked pretty well, minus the fact that it didn't know how to deal with my HiDPI screen.
Chrome Canary isn't available for Linux. That's not that big of a deal most of the time, but usually the coolest DevTools toys come to Canary first and might not make it to the stable version for a long time.
I'm guessing that the magic that is iTerm2 + tmux -CC doesn't work in Linux. If you don't know what I'm talking about, Google for it. It's amazing.
Dropbox works pretty well on Ubuntu; not so much for other distros.
IntelliJ just doesn't look as good on Linux as it does on a Mac. But, it does work.
If you have an iPhone, it's really nice to be able to type normal text messages on macOS. Yeah, I know, Apple is just being Apple, and things are nice, but it's still a walled garden. Whatever--it's still nice, and I would miss it in Linux.
Thankfully things like Slack, VS Code, Signal, and Typora just work these days because they're Electron apps. It sucks to think of how much this is eating up in terms of system resources, but it's nice that they at least work.
Anyway, I wanted to figure out if it was viable for me to switch to Ubuntu. I think the answer is yes, but not with this Facetime camera. I'll stick to using macOS and running Linux in a VM using VMware Fusion. By the way, I really like VMware Fusion, and things like Kali Linux should be run in a VM anyway.
See also PCMag's Windows vs. MacOS vs. Chrome OS vs. Ubuntu Linux: Which Operating System Reigns Supreme? Don't worry about the click-baity title. It's actually pretty good. Perhaps it might not tell you anything revolutionary or new, but it's a solid, well-balanced look at the four OSs.