Tell HN: macOS is degrading fast, and GNU/Linux is now better for most uses
https://news.ycombinator.com/item?id=17239471
YMMV, but in my experience the quality of MacOS is degrading fast, and GNU/Linux keeps getting better driver support and has become so much more stable __and__ usable (for work, I run Fedora with GNOME on a Framework laptop, and my personal Framework runs Ubuntu for now) since that post 5 years ago that I'm increasingly seeing MacOS as an annoying OS which, among devs, should only be used if developing for Apple platforms.
GNU/Linux doesn't just have feature parity, in so many way it's __better__ than MacOS. For example:
- I don't have to make any changes to my dev environment after updating Fedora, whereas XCode command-line tools usually need to be updated manually to get new installs of Erlang & Elixir to pass the compilation stage.
- 2x pixel scaling is so atrocious, it literally hurts my eyes on MacOS (at least on my x86 Mac Mini from 2020), while it works perfectly on Fedora.
- On MacOS, if I want to completely terminate a program, I have to right click on its icon in the dock and then select quit. On Fedora (and every combination of distribution and desktop env I've tried), clicking the close icon actually terminates the program (imagine that), and no more processes are running unless there's still another window running the same program. It seems like GNU/Linux follows the Principle of Least Astonishment while Apple does not.
GNU/Linux in general, and Framework in particular, still need to improve battery reliability and power management. In just about every other way, Apple (with its tightly integrated supply chain and platform) is being upstaged by a disparate network of developers, suppliers, and hardware vendors, none of whom can easily bend the others to their will.
48 comments
[ 10.2 ms ] story [ 113 ms ] thread2015-2017 Linux Yay, happy to work for real.
2017-2019 Linux I love Linux. So many things I can configure, i3 is the best.
2019-2021 Mac Ok, got tired of various configuration options and my set up wasn't perfect still...
2021-2022 Linux Grr! Mac is so limiting. Just look at Fedora Silverblue and its immutable file system. ThinkPad's keyboard is the best!
2023- Mac Macbook M2 works really great out of the box. Hibernation works :whoa:
For me I've noticed that I do get tired of a single OS after a while and want to try something new. Switching to a different OS gives me a clean slate for experimenting.
- I need to use a workaround to avoid the title bar flashing without reason
- The window sometimes just disappears and Mac window management isn't sophisticated enough for me to rescue it.
More and more doesn't 'just work'.
I've been using macs for about 15 years and i have never seen the problems you describe. I'm curious how they are happening for you.
2 things to note:
- This bug has 12 +1s, which suggests it was never very widespread (I could be wrong); and
- Big Sur was 2 major releases ago.
Like I mentioned, I never saw this issue, and had never heard of it despite the fact that probably about half the people I work with use Macs, and I believe nearly all of them use iTerm2.
⌘-q terminates a program, ⌘-w closes a tab/window
> On Fedora (and every combination of distribution and desktop env I've tried), clicking the close icon actually terminates the program (imagine that), and no more processes are running unless there's still another window running the same program. It seems like GNU/Linux follows the Principle of Least Astonishment while Apple does not.
This is just a different design choice. It has been this way for a long time on mac. Just because you aren't used to it, doesn't mean it is necessarily wrong.
Side rant: why doesn’t iOS let me close all apps without swiping up on them individually? Seems like an actually user-hostile design choice. And I say that as someone who plans to never use Android again.
I will admit that placing "Close Window" under the File menu in Safari (for example) rather than the Window menu seems counterintuitive. The reason is that Mac apps are traditionally document-based, the File menu deals with document operations, such as closing the current document. I believe it also predates standardization of the Window menu. Unfortunately Safari (and some other apps) aren't exactly document-based, yet they share the document-style menu layout for UI consistency. Personally I wouldn't mind duplicating Close in both the File and Window menus.
Really it's not so much "correct" or "incorrect," just different. But well-documented.
AFAIK, then, that leaves System Preferences as the sole exception to the normal model, and sure enough, that gets a lot of complaints from those of us who've been using Macs for long enough to remember when people at Apple really worked hard to implement the models consistently.
There are some third-party apps that break the model, too, which is unfortunate.
(I used to use a PC, but after Windows XP, that fell to the bottom of the list.)
All the other points - 100% valid. And there are so many more
Cmd-Q ?
Or even better cmd- tab-q-tab-q. Who has time to find the corners of a half dozen windows with a trackpad when they want to simply quit a program?
I haven’t run Linux desktop for a while but the inconsistency in keyboard shortcuts was a drag, maybe it’s gotten better? One of the best parts of macOS is how consistent keyboard shortcuts are across the system, and how easy it is to customize them with the built-in preferences, or via karabiner-elements if you have the accessibility challenges of being a power user.
On Windows, and on desktop Linuxes that I’ve used, a running program is inseparable from its windows. E.g., if you open notepad.exe and then click the “Close” icon, notepad.exe shuts down. (This is true commonly but not always).
If you open another document you will often get another window for notepad.exe. If you click the “Close” icon on the second window, the application will keep running, since it has the first window open still.
MacOS does it differently. Most applications run separately from their windows. Open TextEdit.app and it stays open until you tell it to quit. You can have many or few windows open and the application will keep running.
This plays better with another different in MacOS, which is that a running application controls the menu bar at the top of the screen. In Windows and Linux, those controls are specific to each window of each running application. So if you have 3 copies of notepad.exe running, you’ll see three menus for it, one in each window. In MacOS you’d see the TextEdit.app menu at the top of the screen, and the editing windows floating on the desktop.
Switching between these two metaphors is hard, regardless of which direction you go. There isn’t an objectively right way to do it. Changing from one metaphor to the other wouldn’t be as simple as changing the function of “Close,” though — many features and patterns are inextricably linked to this choice.
Lastly, FWIW, there are multiple ways to close an application on MacOS: using the Dock, as you describe; Command-Q almost always works, both from the application and from the task switcher (Command-Tab); Menu > Quit works. I personally hide the Dock, and use these other methods.
Use whatever you like! Many of us could pretty much write the same piece about Windows or Free/OpenBSD but ultimately it doesn't matter. Though it's strange that you couldn't figure out the Cmd-Q to close apps in 5 years ¯\_(ツ)_/¯
It's not easy to be more discoverable than that.
I was always told it was just like Linux with a better UX. But this is not the case. It's frustrating how much MacOS is missing.
- Multiple desktops, but you can't move windows between them with keyboard shortcuts.
- Animations: Baked-in, long, IO-blocking, and they can't be disabled.
- Terminal: You need MacOS-specific terminal commands for various basic settings (such as adding a spacer to the dock). The default terminal is pretty bad, and you will want to download a third party one.
- Window management: Extremely basic and even worse than Windows. (No keyboard shortcuts, no tiling, etc.)
- Running applications downloaded from the internet is obtuse and time-consuming.- Even the newer laptops with "fixed keyboards" have problems. (Every 2021 MBP I've tried has a bad capslock key. This is supposed to be by design.)
This is ignoring all the usual MacOS complaints. (XCode, no native Docker, bad coreutils, no volume sliders, no games, long system updates, can't use the machine while it updates, telemetry, OS speed tied to speed of telemetry calls, features are obtuse/obfuscated and lack affordances for discovery, bricking from user-accessible settings, etc.)
The benefit that the newest Apple laptops had are its battery, but that was ruined with the latest major update to MacOS.
I really really regret buying a MacOS laptop. (I have a 14" 2021 MBP.) I was naive, curious, and ignorant. A cautionary tale for anyone else who's happy in Linux land!
That is definitely not true. Whoever told you that has probably never used either one of the systems.
> Multiple desktops, but you can't move windows between them with keyboard shortcuts.
I use Rectangle app. It's free and open source, and has this functionality.
> Animations: Baked-in, long, IO-blocking, and they can't be disabled.
I agree with this one. Having an option to at least accelerate them to near-instant would be nice. Disabling them altogether as an option would likely be desirable to many. It would also be better if the focus transitioned fully as soon as the animation started, not ended.
> Window management: Extremely basic and even worse than Windows. (No keyboard shortcuts, no tiling, etc.)
Rectangle app again. Keyboard shortcuts, mouse-based tiling, the works.
> Child windows (e.g. to open or save files) will move the parent window if (1) it's wider or taller than the parent window and (2) the parent window is near an edge. This is very funny but only the first
This is just complaining about nothing. The parent window returns to the original position once the child window is closed.
> Running applications downloaded from the internet is obtuse and time-consuming.
Sorry, what?
> Even the newer laptops with "fixed keyboards" have problems. (Every 2021 MBP I've tried has a bad capslock key. This is supposed to be by design.)
If you mean the tiny delay between pressing it and activating the lock, it's definitely not a broken thing. Arguably, it should be an accessibility option, either opt-in or opt-out. As it stands, there's no option.
Most people tend to like it though as it absolutely kills the possibility of accidentally switching it on.
> This is ignoring all the usual MacOS complaints. (XCode
How is XCode a macOS complaint? It's an IDE, not part of the OS. I never have it installed on my computers as I don't write mac or iDevice apps.
> no native Docker
The only OS that has native Docker is Linux because Docker just packs Linux features (namespaces, cgroups) in a more user-friendly package.
macOS has pretty much the same Docker experience as Windows does. If you don't want Docker desktop, colima IMO provides an even better experience.
> bad coreutils
coreutils is part of GNU. macOS is based on FreeBSD. What are you even complaining about?
> no volume sliders
If you mean per-app slider, fair point. Otherwise I don't know what you mean.
> no games
Seriously? Yeah, as it stands, Mac computers are not gaming devices. That said, there are many games that run on it. Perhaps not the ones you want to play.
> long system updates
Fair. It seems to be getting better though, and it's much superior to Windows. I've also never had an upgrade break my computer in ways that took hours to fix like I always had on Linux (before I migrated to Mac, I was an exclusive Linux user for many years. I still run it on my servers and a couple laptops).
> can't use the machine while it updates
Fair.
> telemetry
Fair.
> OS speed tied to speed of telemetry calls
My telemetry calls must be really speedy then, even when every other network call is stuck on treackle.
> features are obtuse/obfuscated and lack affordances for discovery
I'm not even sure what you mean by that.
> bricking from user-accessible settings
Never seen or heard of that one, but sounds horrible.
> The benefit that the newest Apple laptops had are its battery, but that was ruined with the latest major update to MacOS.
I'm typing this on an M2 Pro that's been on for about 4h. It's up-to-date and has 69% battery left.
> I really really regret buying a MacOS laptop.
That's fair. To each their own.
> I was naive, curious, and ignorant.
That's fine. Curiosity and ignorance go hand-in-hand. Naïveté is not really an issue, and sometimes is a...
> > I was always told it was just like Linux with a better UX.
> That is definitely not true. Whoever told you that has probably never used either one of the systems.
I agree it's not true, but this is the impression I got from other devs. I certainly prefer the dev experience on MacOS compared to Windows.
> > Multiple desktops, but you can't move windows between them with keyboard shortcuts.
> I use Rectangle app. It's free and open source, and has this functionality.
Wait, are you sure? I'm talking about moving windows between "Spaces", not separate monitors. I love Rectangle to bits, but AFAIK MacOS provides devs no API for moving between spaces.
My experience on MacOS would really drastically improve if there's a way to do this! (Hope there's someone at Apple who might be reading this...)
> > Child windows (e.g. to open or save files) will move the parent window if (1) it's wider or taller than the parent window and (2) the parent window is near an edge. This is very funny but only the first time
> This is just complaining about nothing. The parent window returns to the original position once the child window is closed.
This is not my experience. (Perhaps it's a setting I flipped unintentionally, or perhaps it is app dependent?) Once moved, the window will stay there until manually returned to its proper position.
I do agree, it wouldn't be worth mentioning if the window returned.
> > Running applications downloaded from the internet is obtuse and time-consuming.
> Sorry, what?
When downloading certain applications from the internet, MacOS will prevent you from running it, with a dialogue window along the lines of "We haven't seen this file before, so we've put it in the trash for you."
The dialogue window for an unfamiliar app is almost identical to one for known-bad malware.
There is a secreted location where you can ask the OS to run it anyways. Apps that you have recently attempted to open will be listed somewhere in the system settings.
> > Even the newer laptops with "fixed keyboards" have problems. (Every 2021 MBP I've tried has a bad capslock key. This is supposed to be by design.)
> If you mean the tiny delay between pressing it and activating the lock, it's definitely not a broken thing. Arguably, it should be an accessibility option, either opt-in or opt-out. As it stands, there's no option.
> Most people tend to like it though as it absolutely kills the possibility of accidentally switching it on.
This is the opposite of my experience. It turns on when I don't intend it to, and does not active when I intend it to. (This is my experience on two separate MBPs, so I believe it's part of the intended experience.)
I definitely believe a lot of people like this, and it's probably not a big issue for most others.
> How is XCode a macOS complaint? It's an IDE, not part of the OS. I never have it installed on my computers as I don't write mac or iDevice apps.
I haven't used Xcode a lot. But the experience was surprising (sluggish, huge download). I understand Xcode updates also update system-wide Python and Git. (I think this caused me an issue, but I'm not 100% sure where the blame falls.)
> bricking from user-accessible settings
Never seen or heard of that one, but sounds horrible.
Yeah :( If you set the display to "web colors", it won't posterize to the web palette, it'll instead map every non-web color to black. Rebooting in safe mode, resetting eeprom, etc. doesn't fix it. (FWIW, I think this is only a soft-brick.)
> > features are obtuse/obfuscated and lack affordances for discovery
> I'm not even sure what you mean by that.
"Affordances" such as skeumorphs implying a button is a button, etc....
Hi! I hope I hadn't come across as argumentative either, it was not my intention. I appreciate you taking the time to respond.
I haven't responded to every single point. The ones I skipped you can assume I either simply agree completely or otherwise didn't have anything of value to add.
> I'm talking about moving windows between "Spaces", not separate monitors. I love Rectangle to bits, but AFAIK MacOS provides devs no API for moving between spaces.
I swear I was under the impression it did but I can't find it now so I assume you're right. My bad.
> Once moved, the window will stay there until manually returned to its proper position.
Perhaps I'm misremembering this one as well but this is the kind of thing that would annoy me so I assumed it behaved the way I said. I just tried it with Pages though, and the behaviour was even worse - the child window just overflowed to the side of the screen, making part of it invisible unless I manually moved the window further to the centre of the screen. :(
> When downloading certain applications from the internet, MacOS will prevent you from running it, with a dialogue window along the lines of "We haven't seen this file before, so we've put it in the trash for you."
I see. By default, macOS will check for signed binaries and try to validate that signature. If it fails either check (no sig, invalid sig) it asks if you want to cancel or bin the binary. I'm not sure but I think with recent macOS versions it also needs to be notarised in order to pass.
> The dialogue window for an unfamiliar app is almost identical to one for known-bad malware.
That's because macOS takes a zero-trust approach to executables. If it doesn't pass the checks I mentioned above, it treats it as malware. The difference between known malware and unknown malware is just that - knowledge - so it wouldn't make sense to treat it differently in either case.
There used to be a config option in system preferences to allow any executables. I'm sure the option still exists somewhere but if it does it's hidden.
Cynics will say it's because Apple wants to maximise the number of paid developers. Less cynical people will say it's as a protection. Personally, I don't think it's done out of malice but I don't think the fact that more money comes in hurts them either.
> There is a secreted location where you can ask the OS to run it anyways. Apps that you have recently attempted to open will be listed somewhere in the system settings.
I haven't seen that. Usually if I want to run an unsigned binary I find it in Finder, right click and select Open. That makes a similar dialogue appear but with a button to override and open it anyway. The OS then sets the binary as trusted and doesn't ask again.
Definitely not discoverable. Again, it's either to maximise income or to better secure users. Or somewhere in between.
> Xcode > the experience was surprising (sluggish, huge download).
Yep, agree. The 2 or 3 times I downloaded it I had a similar experience. That said, I don't use it and don't consider it part of the OS itself since it's definitely not required unless you're writing and/or compiling native apps.
> I understand Xcode updates also update system-wide Python and Git.
No idea but it wouldn't bother me either. To me, these kinds of tools and languages existing system-wide are just a convenience for quickly running a script where I don't care about dependencies or the language version, or to install Homebrew - which used to require git, although I don't think that's the case anymore. Past that point, everything is installed for my user so I don't really touch the system ones.
> If you set the display to "web colors", it won't posterize to ...
Even then, how do they support your claim that MacOS is _degrading_, let alone _degrading_fast_? I’m not aware that it has behaved better in the past for any of the behaviors you mention since 1984.
So, it's really great it works for you, but, sadly, for me a lot of things on macOS "just work", both essential and unessential, while in GNU/Linux many essential things "just won't work", even considering its much better developer experience.
I run Linux and MacOS for work and privately.
For "I want zero configuration, just give me a default work environment!" Ubuntu and MacOS are both acceptable, but MacOS is both slightly nicer and degrades less over time, i.e. the amount of sketchy behavior the operating system does after it's been installed for a while increases faster with Ubuntu, in my experience.
For "I want a highly customized work environment", you do get a better end product with Linux, although you can customize MacOS very decently, too. But it comes at the cost of sinking countless hours into your setup. That's why I still use Linux, because I can get exactly the setup that I want.
Except really good battery management and hardware support. I only sometimes get suspend, and I can sometimes play games on Steam, depending on the mood of the distro, how long it's been on my computer, and how much I sacrificed to the gods. For software development with a persistent power supply, Linux friggin' rocks. With a good enough laptop, the battery usage probably isn't a problem at all.
For "I want really good integration with my phone", you just don't have anything that looks like MacOS'es integration with iPhone. Sorry. I have a lot of quality-of-life experiences with MacOS that are entirely possible to set up with Linux (e.g. syncing on many levels), but I never got around to setting them up on Linux, and I just got them all-inclusive on Apple's platform.
We use Ubuntu at work for some things, even as a sever, I have no respect for it. I have no idea why it’s popular. Marketing ?
For a while Ubuntu was the most likely distribution to have everything or most things work out of the box on many systems.
On top of that, yes, marketing.
Aside from the new Settings screen, I feel as good about macOS as I ever have. Linux I'd prefer for predictable servers, but they're different things. Mac still lets me get shit done as productively as I let myself do it. I'm sure Linux can be that way too, but I'm not looking for an alternative. Windows still feels like garbage.
The few things I'd really like to see in the next pro laptops, are LTE built-in, and more interesting colours than silver and grey. A forest green 14" Macbook Pro with 96gb (or 128gb of ram), the best processors and battery life I can buy, and zero noise, is beyond perfect for development for my needs.
Yes, Linux is still better in my opinion. But my main problem is the difficulty of finding an actually Linux compatible laptop combined with the consequences of making the wrong choice. Mac OS isn't that bad, works out of the box and if the Asahi project keeps up that pace I might be able to use that laptop beyond the support period.