I used to use Linux as my full-time desktop from 1994 to 2013.

I've developed all sorts of things. I've built 3d games engines and EDA software that ran on Linux desktops. Even when developing for Windows or (in the earlier days) DOS, I cross-compiled them on Linux. So I have plenty of experience with it.

I 2013 I bought a MacBook Pro, having held out a long time, vaguely in line with the GNU boycott of all things Apple. A big life event led to me deciding to try something new outside my traditional comfort zone, and I went to a database conference where it seemed the entire audience had an MBP. I'd read that the hardware was great. So I bought one.

I've been pretty happy with it ever since.

However the first thing I did was install VMware Fusion, so I could still have a Linux desktop. In fact I copied my previous machine's entire installation over, to run in the VM. It worked very well and still does.

The MBP four-finger swipe between desktops works really well for this: I could switch between Mac and Linux desktops as if they were equal status peers on the machine. It's about as good an experience as running Linux natively. I know, having used Linux desktops for 19 years prior to that.

Performance of filesystem access won't be as good, but I tend to use Linux servers for intensive work including compilations.

Naturally, I tried booting Linux directly on the MBP. It's the cool thing to do, and I've done it with every previous laptop I owned.

Then I did some battery measuerments, and found (to my surprise at first) that Linux drained the battery noticably faster than MacOS running Linux in VMware. So I stuck with VMware, and got used to MacOS desktop gestures on the Mac side, and the lovely four-finger swipe between desktops. I had wanted to try something new anyway, so that cemented my exposure to MacOS.

Around the same time, Ubuntu's desktop experience went downhill. The out of the box Ubuntu desktop is nothing like the rich desktop I was using from GNOME in previous years and through numerous XFree86 configurations before that. I couldn't be bothered installing an "alternative" desktop any more. Most of my deep development work was run on servers anyway, or in terminal windows.

The weird scroll control that appeared in Ubuntu desktop was especially offputting. I'd found it difficult to use even on my previous laptop.

Even now, where I still have Ubuntu installed in a VM, the Ubuntu desktop experience still seems rather odd. I have to click some dots and type "terminal" to get a terminal window up, while I'm presented with a bunch of apps I'm not interested in, does not encourage me to spend more time with it when I have alternatives. There's a "frequently used apps" tab, but Terminal doesn't appear in it despite it being by far the most frequently used app. The collection of interesting desktop controls I remember from older desktops seems to be absent: The default is quite minimal. Obviously I know I can pin the terminal, reconfigure everything if I put in the time, switch to an alternative desktop, or code things myself if I'm really keen. What I'm saying is the out of the box experience isn't a great start, and since I have MacOS available as a peer which is very featureful from the start, it's just easier to swipe and use that.

There are some things I'll definitely use with the Linux desktop: Inkscape in particular, and for OpenGL tests. But mostly I use my Linux VM via SSH from iTerm now. Same way I access my servers.

For a few years, this resulted in my preferring to access Emacs running in Linux over SSH from a Mac terminal, compared with using the GUI to access the same Emacs on the Linux desktop. The Mac side terminal was just a better experience than the Linux GUI, especially as by then I was using Firefox etc on the Mac side. GUI Emacs is much better, though, for scrolling and copying. So eventually I got a good version of that running on the Mac side as well, and when I use Emacs on the Linux side, that's now emacsclient calling the Mac side Emacs to edit Linux files.