As a long-time user of Windows and macOS, I've long felt that these systems continually get in my way and slow me down. Windows has its own flaws, but I want to pick on macOS, because it's remarkably similar to GNOME without being nearly as usable, coherent, or efficient. Options are often taken away from you and hidden in obscure locations, or otherwise completely disabled. macOS is very opinionated, as all great desktops are, but I think you'll agree with me that at least some of the decisions are poorly thought-out or limiting for no good reason. Some, even, are relics of a different century that have never been rethought.
While I have tried to do things the way Apple thinks I should, I don't think I'll ever be able to call it efficient or powerful—not in the same way I feel GNOME is. I feel that attempts to alter my macOS desktop have improved its usability for me without reducing its stability, though this only goes so far. There are certainly nice things about the desktop not present in Windows, but there are issues not present on GNOME that continue to eat away at me.
Spotlight, Mission Control, and Virtual Desktops Are Fragmented and Do Not Integrate Together
GNOME is simple. Press the super key, and you'll be presented with the activities overview. This is the area for any and all top-level management of your desktop. If you want to open an application, just start typing. If you want to manage your virtual desktops, all of your desktops are visible, and you simply need to move to a desktop to see the open applications. You simply need to double tap Super to bring up your application launcher, if that's more your speed.
In macOS, all of these activities are fragmented and managed separately. It's slower and gives you less context. I often want to do several of these activities directly after each other, such as wanting an overview of my desktops directly before I launch a new application. There is no reason to have 3 different screens and shortcuts for very similar activities, and it just becomes more confusing and difficult to manage.
Virtual Desktop Management is Slow and Cumbersome
Virtual Desktops on macOS are at least not as crippled as they are on Windows, as it's possible to assign a keyboard shortcut to each desktop reliably. You even have the option to set a different background for each desktop, something not as common on Linux Desktop Environments, and not present on GNOME by default. However, there are issues.
Virtual desktops are very annoying to manage. When you press F3 (which is the key that brings up Mission Control), the top-level view of all desktops is hidden; instead replaced with text "Desktop 1", "Desktop 2", etc. You have to mouse over the top to see what's on other desktops as a glance. Then, if you want to move to another desktop without exiting Mission Control, you need to hit the shortcut on your keyboard to move to that desktop. Quite often, you'll find yourself hitting a key, switching to using the mouse, and then switching back to using the keyboard. Mouse users may find themselves satisfied with the 3 finger swipe up to bring up mission control, but I'm admittedly awful at getting mouse gestures right myself.
On GNOME, you hit SUPER, and you can navigate using the keyboard. Alternatively, you can navigate using the mouse by clicking Activities in the top left and clicking the desktop you want to move to. On Wayland, users can swipe up with the trackpad in the same way as on macOS if they prefer this. There's no switching between different modes of navigation, and nothing is obscured. GNOME is clearly more thought-out and pleasant to use for users who want to use a keyboard or mouse—not some frankenstein combination of the two.
Another thing that makes virtual desktops more frustrating to use on macOS is that you can't assign a shortcut to move a window to another desktop; you need to open Mission Control and drag it with your mouse. In fact, Window Management in general on macOS is completely crippled, so it's no surprise that it extends to virtual desktops.
All this makes for a slow and cumbersome experience that I find myself regularly frustrated with.
Window Management is Crippled
I'm sure everyone can agree that Windows got it right, or at least right enough. How macOS doesn't have basic window management functions 37 years on, I'm really not sure. There are no keyboard shortcuts to maximise or tile windows like on Windows. You can't even drag a window to tile it. You'll have to waste time with the cursor trying to get it the way you want. If you want to tile or move windows in a way that respects your time, you'll have to purchase or download a third-party app. The Maximise button, for some reason, is instead a fullscreen button that moves the window into a virtual desktop-like space that doesn't have a corresponding shortcut key, making it effectively worthless. There are options to tile windows if you click and hold the Maximise button, but these also take you to a fullscreen context. If you want to access that window, you'll need to bring up Mission Control, and then switch to your mouse and peck at it. In order to actually maximise a window, just as on GNOME and Windows, is to double-click the titlebar. Unlike the other two desktops, you cannot hit SUPER+UP to accomplish the same task in less time.
Minimizing is at least more useful on macOS, because the minimised applications are clearly distinguished on the right side of the dock, but I'm of the opinion that minimizing applications is worthless. If you're not using it, close it. If you're not using it now, but you will be soon, move to another workspace. Maximise is equally pointless for the same reason; you can just hit SUPER+UP or double-click the titlebar, which are harder to screw up—if you're a few milimeteres stray of the maximise button, you'll end up closing it instead.
That's why I like GNOME's paradigm of the one-button window. Truthfully, even the close button isn't necessary, but it's difficult to accidentaly hit it, and it's a necessary window management function not worth obscuring for mouse users.
Hiding the Dock is Not Enough For Me
macOS's dock suffers from the same issues as Windows' Taskbar. Even if I hide it, it will still show up at inopportune moments. I will often find myself accidentally hitting the edge (or close to the edge) where it's hiding, open it, and then have to move away and move back; slower this time, to get to the button I wanted to click. GNOME makes it easy by taking it completely out of the normal window management paradigm. It's in the Activities Overview instead, so you have to be intentional to get to it.
Truthfully, I don't find myself using the dock at all, so I'd rather go without, but I suppose it might be of comfort to some users to have it there. At least on GNOME, it's completely out of your way unless you need it. It surprises me that Windows and macOS continue with the half-hearted dock-hiding practice.
Half-Hearted Package Management
The App Store at least qualifies more than the Microsoft Store as a package manager replacement, but it's not great. You'd certainly find it difficult to get all the software you need from the App Store in the same way you can on, say, Debian, or need to be able to do on iOS. You need an Apple ID to use it (why? Most of what I want is free in terms of price and licensing!), it's slow, and there's so much useful software that isn't there. There's really no excuse for a trillion-dollar company—at least in terms of market cap—to have a worse software repository than all of the community-maintained Linux distributions (and also the commercial ones).
Worst of all, often times the apps in the App Store are worse than the software you download directly from the vendor. Take Davinci Resolve, where the App Store version doesn't have CUDA support because of Apple's restrictions. The App Store has all kinds of restrictions that, perhaps, are designed to protect Apple, but impact the user negatively. Why would you want to use the App Store when you get worse apps? That's not how it works on Linux!
There are, however, various community-maintained package managers for macOS which are...less bad. I've used Homebrew and MacPorts, and they make the experience less painful, but they're certainly not my favorite package managers. Whether it's speed or just the interface, I don't find them appealing compared to Pacman or even Apt.
Finder is a Terrible File Manager
Finder really is terrible. Hardly anything has changed in over 30 years. It was bad then, and it's bad now. By default, there is no way to view the file path. If you perform some terminal wizardry to edit a configuration file, you can get the file path, but you can't edit it! There is no way to copy the current path graphically, even if you can see it. No, you'll find that you'll have to hit Command+Option+C to copy a file's path in the current directory, which is similar to what I want to do. Just like on Windows, there is no built-in terminal like there is in Dolphin and, if you use an extension, Nautilus. The ability to move up one folder is completely obscured graphically, but you can hit Command+Up to achieve the same effect.
Enter, for some reason, doesn't open the application (a decision that hails from decades ago). Instead, it changes the filename. You'll want Command+O for that. Enter doesn't open folders either; you'll want Command+Down For that. There's no way to set Finder to use a single click to open a file. In Nautilus, there is. In Dolphin, this is the default behavior. Why click twice when you can click once?
To change the default application for all files with the same extension, you have to hit Command+I (or fumble through the bloated right-click menu for an option that has something to do with "Media"), which will then open a bizarre non-centered modal on the left of the screen that overloads you with useless information, then click the "Change All" button. If you hit "Change", you'll just change it for that file.
In GNOME, you hit Command+I also, or Alt+Enter, or right-click and click "Properties", and then you can navigate to "Open With", which will give you the option to change the default application. There's much less useless information, the modal is nicely centered and organised into tabs for specific options, and the menu item isn't named something opaque that you wouldn't be able to decipher at first glance.
At least you can install Ranger using Homebrew, which is far more usable, but you'll still be dealing with Finder when using a program's Open File dialog.
That being said, there are some nice features in Finder which File Explorer in Windows doesn't have but should—such as tabs.
Terminal is Okay, But macOS Doesn't Have a Default Dropdown Terminal
It's really not hard to beat Windows' CMD. Terminal has tabs, at which point it can take home the trophy (though Windows 11 has Windows Terminal, which finally has tabs, as well as the ability to open different shells in each tab). However, the font and text rendering is hard to read. It uses zsh instead of bash by default because Apple is allergic to the GPL, I guess. There's also no drop-down terminal like Guake, which is infinitely more useful in most cases, as you don't have to worry about window management and you can pull it up anywhere, pushing it into the background when you're done. When I need a terminal, it's usually what I use—they're great. macOS, disappointingly, does not have a dropdown terminal by default.
To its credit, Terminal offers much more extensive customization options than CMD does. It's a tool that you can conceivably live in.
But I find myself recommending that you just download iTerm2; most of what you want will be default, and it has many more customization options. You can even get a dropdown terminal with iTerm2, though it requires some fiddling. Even after that, Command and Control have a weird relationship with the shell that are not as intuitive to figure out as you might think.
As a BSD descendant, macOS has quality command line tools, but it doesn't quite reach GNOME, and certainly not by default.
macOS has no WSL
Windows Subsystem for Linux (WSL) makes Windows a lot more usable because you can replace File Explorer with Nautilus, or my preference, Dolphin. On macOS, you can't do that. You can install an X Server and Nautilus using MacPorts, but that will only get you so far, because it isn't actually usable. You can't actually use it with the rest of your macOS system; it can only open Xorg applications.
WSL gives you low-latency access to a GNU/Linux distribution, and of course, GUI applications. It's not perfect, but you technically have access to more GNU/Linux applications than you do on macOS. On the flip side, the applications on macOS are native, while with WSL they are virtualised. This may not make much of a difference, however, as WSL has GPU support (at least with NVIDIA), so it doesn't seem to be much of a performance hit at all. I've read that it can get a bit messy with filesystem shenanigans, however.
No First-Party Method to Record Desktop Audio
If you try to record your desktop audio with OBS Studio or any other software on macOS, you will not be able to. You need a third-party driver to expose the desktop audio so recording software like OBS Studio can record it. This is pathetic. It just works on GNOME and Microsoft Windows.
I Don't Like The Keyboard, Either
What makes macOS different from Windows and Linux is that macOS isn't just an operating system; it's one part of a complete package where Apple is responsible for every single part of the experience. Microsoft doesn't make a desktop, mouse, keyboard, monitor, and speaker package for Windows, though I guess you could say that Microsoft Surface is their "flagship", but that's an exception, not the rule. Most people are not using Microsoft Surfaces. I suppose you have IBM to thank for the more decentralized hardware market we have today. Linux comes preinstalled on some machines, but aside from System76, there are no real "flagship" Linux systems, and there probably never will be. It's an entirely decentralized market.
ChromeOS is much like Windows in that it's preinstalled on a great many machines, but no package is "the real deal". It's a descendant of GNU/Linux that shares more blood than Android, but it is proprietary, incompatible with a lot of software developed for GNU/Linux, and considerably more locked-down than most distributions. That's not an indictment on its usability or use cases, however. But it, too, is not a complete package in the same way a Mac is.
My point is that Apple has had every opportunity to get this right. They lock you in, refuse to give you any choice, and have complete control over the experience—but it falls short. Command is not an adequate replacement for SUPER. It's no longer an active key, and instead can only be comboed with other keys. This is a useless reduction in productivity for no reason. It also means that 2 Function keys (F3 and F4) are taken up by worthless junk that could just be mapped to the SUPER key. For the rest of the function keys, just add some extra media keys on the full keyboards and put them there. At least then, we would have access to F2 instead of Enter for rename in Finder!
Brightness and Volume could still be mapped to the Function keys, and as Apple is so fond of giving the Function keys specific semantic meaning in macOS, why not have the rest of the functions keys do something far more useful (assuming macOS had an Activities Overview mapped to SUPER), like Launch Applications 1-7 on the Dock?
I don't see this happening, however. On a Macbook, I understand using the function keys in that way because you don't have enough space for media keys. With an iMac, this doesn't make sense.
But What Does it Do Better Than Windows?
I prefer macOS over Windows because it's far easier to improve macOS than it is to fix Windows. I feel that macOS is fundamentally better designed and cares more about a good user experience than trying to convince the user to buy more of your services. A few relatively small alterations could drastically improve its design. I feel that Windows is far more broken. You can try messing with Auto Hotkey (AHK), Classic Shell, and Windows Power Toys, but in my experience, this will always be clunky because Windows was never designed to be used in this way. And the more you change, the more Windows will fight back. For instance, AHK can map shortcuts to virtual desktops, but only if you aren't using native windows applications. It also results in strange behavior at times. Want to remove Cortana? Your Start Menu will be broken.
More importantly, macOS is based on Darwin, a BSD-Mach hybrid kernel from the late '90s that Apple released freely to the public. Importantly, you will note, they were not required to release Darwin to the public. Unlike Linux, a kernel which is licensed under the GPL, the BSDs (which are complete operating systems) are licensed under one of several BSD licenses which don't require the distribution of source code when you distribute a modified version of the original program to others. Darwin, along with XNU (X is Not Unix), Darwin's kernel is still released publicly today. In typical Apple fashion, this is essentially the "core" of macOS, but it's not possible to build because it depends on proprietary components.
The history of macOS, like most long-lived technologies, is a long and winding one. I've only read bits and pieces to get an idea of the full picture, so forgive me if I've misunderstood something. Some parts are more convoluted, even, than the story of how and why GNU/Linux is the way it is.
The story goes that Steve Jobs was ousted from Apple in 1985 over Lisa's multi-million-dollar commercial failure, and the succeeding management proceeded to learn nothing from this mistake and over-promised and under-delivered yet again, while Steve built NeXTSTEP. NeXTSTEP was different from Apple computers in that it targeted a much higher-end market with its workstations. It seems only natural, then, that NeXTSTEP would be built from a BSD operating system, which at the time was a variant of UNIX. But unlike UNIX systems at the time, it was far more user-friendly and featureful, while still being just as hackable. All the glory of UNIX, with none of the hassle, a characterisation that applies even today.
NeXTSTEP was never profitable in the long term, however. 10 years later, after a disastrous internal development cycle on the next version of its operating system, Apple lost hope in developing a stable platform themselves and went looking to acquire something already stable to use as a base. At this time, BeOS was being seriously considered, but this partnership never quite happened. Haiku, the open source successor to BeOS, is still around today. In the end, they went with NeXTSTEP, as Steve Jobs managed to convince the higher-ups at Apple to acquire NeXT.
While NeXTSTEP may never have been particularly profitable, its technology stack was beloved by the people and corporations that did use it. And so, Mac OS X, an operating system that has only recently been iterated with macOS 11, was born a few years afterward. And to this day, macOS's lineage is still very much that of NeXTSTEP and the BSDs. As Microsoft chose to move away from UNIX and its Xenix system in the 80s, Apple embraced UNIX's direct descendant, BSD, in the 90s.
I find Apple's early history deeply interesting. It's a far cry from the mobile-centric empire they've built today, and the culture feels starkly different. But I'll stop here, lest I start detailing the history of UNIX and the many UNIXes...
This history is important because Darwin shares a considerable amount of similarities and architecture with Linux, which is also modelled after UNIX. These types of OSes are termed "Unix-like". macOS (but not Darwin itself) is POSIX compliant, which essentially means that it is easily interoperable with other Unix systems. This is important because it means that a considerable number of applications written for Linux will often work flawlessly on macOS—and, as I noted above, you can even install an X Server on macOS. It is for this reason that a lot of developers gravitate toward macOS. They don't want to deal with the headaches of GNU/Linux but the development environment is much easier to manage than on Windows, and it also has a considerable number of popular proprietary applications available, such as the Adobe Creative Suite. macOS is a great middle ground for this reason. Many of your favorite proprietary and open source applications are available on macOS, without any of the development trouble Windows will throw your way.
Lastly, but of a certain importance, is Windows 10's aesthetics. I find the Metro design tacky. I never really liked the Aero theme either, and Windows XP just looks cheap. I'm sort of partial to the Windows 98 look, in a vintage sort of way. Windows 10 was the best Windows has ever looked at the time of writing, but that's not saying much. macOS's strength has always been its aesthetically-pleasing design, though I prefer GNOME's design the most.
2022 March Addendum: Windows 11, however, looks much nicer. It sure took them a while to get the design right.
Does it Do Anything Better Than GNOME?
GNOME isn't perfect, either, but I'm not sure if there are any 'wins' I can concede to macOS. I suppose you could say that macOS "supports" proprietary software better, but that's simply a case of developers of proprietary applications targeting Windows and macOS, not a product of Apple's fine engineering. If you use exclusively Apple devices, this lifts the macOS experience above GNOME because of how well they integrate together. On the flip side, integration with other systems—whether that be Android, Desktop GNU/Linux, or Windows' NTFS filesystem—is generally a subpar experience.
Perhaps you might say that GNOME and Linux have a steeper learning curve. I don't agree with this. I've had to spend a comparable amount of time searching for solutions to problems on macOS and Linux because things are just different from Windows. Of course, this largely depends on what you need to do with your computer. If all you need to do is use web applications, nothing is particularly different compared to Windows.
Drawing on my own experience as an example, I've been using macOS almost daily for over 5 years, and I just found out that Command+O is how you open files in Finder. There are so many other keyboard shortcuts I've had to memorise because Finder fails to expose many of these options in its interface, and I can't change them to something more useful or memorable. I've also had to flirt with the terminal in order to unearth functionality such as the ability to expose the file path in Finder (but not edit it directly, because that would be too wild) and the ability to turn off animations that waste my time.
Needing to move .app files into the Applications folder to install them was not intuitive to me the first time, and I still don't see how it's any better than an alert box asking you if you want to move it into the folder to install it. I can't count the number of times I've not been able to find the trash bin in Finder only to realise that it can only be found on the Dock. There are numerous other things on macOS that are not obvious at first glance in the same way they usually are on Windows or GNOME, but as you become more familiar with the system, these idiosyncracies mostly cease to be nuisances.
GNOME was similarly difficult for me to understand at first, but I quickly grasped the philosophy behind it. Every application in a different workspace. Manage all your work in one place. Rebind functionality you don't like in the unified keyboard shortcuts GUI, and add new bindings for bash commands. However, I did have some issues. The list of things that frustrated me with GNOME are as follows:
- Ctrl+L or typing / or ~ is the only way to edit the file path in Nautilus. It would be nice if there were a way to click to edit the file path.
- Dolphin is better than Nautilus because Nautilus doesn't properly accomodate single-click behavior (there's no select icon when you hover above files/directories like on Dolphin), so you have to work around it.
- Needing to edit configuration files to set shortcuts for workspaces 5+. This is just bad design.
- Notifications persisting in the center of the screen until I dismiss them with no option to change this to "3 seconds only" or something similar. It is possible to still get notifications but without it appearing on the screen, which is sometimes more helpful.
- Lack of good fractional scaling. I use a 4K monitor, but have also had issues on my 1368x768 resolution laptop. I've gotten used to 200% scaling now, but 150% or 175% scaling would likely be more comforable. KDE gets this (more) right.
- GNOME Web, while nice, does not support the two extensions I use. Firefox with a userChrome GNOME Web theme is a suitable replacement.
- No way to create a slideshow desktop wallpaper in the settings application! Why do I need to write an XML file myself or install a shell extension for this incredibly basic feature?
- Why are Startup Applications only available in the GNOME Tweaks application? This is a basic setting, not a significant alteration.
- I don't personally care that much, but it would be nice if they finally added thumbnails to the file picker dialog.
- My advice: uninstall GNOME Books and install Foliate.
On the whole, GNOME is simple, quick, and powerful. GNOME is as opinionated as macOS, but it is far easier to change aspects of it you don't like. If you're feeling adventurous, you can easily add or create your own extensions for the GNOME Shell (though they are liable to break in subsequent updates, as these extensions don't rely on a stable API). Things like a system tray, if you need it. Or desktop icons, if that's how you work. I personally don't use any extensions. I previously used a system tray but no longer need it.