Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

MacOS has really strong userland software, stuff like the Quartz compositor is genuinely quite hard to beat (neither Windows, x11 nor Wayland can live up to it's featureset and stability).

However, MacOS as an operating system really is a mess. Especially the XNU kernel, which is still an unbelievable amalgamation of disagreeing technology. Remember, MacOS is not natively a UNIX-certified machine: all of it's UNIX compatibility comes from a BSD-based compatibility layer that hasn't really been changed since the late-90s. Oh, and the coreutils? Notoriously garbage. MacOS ships with all sorts of outdated, downgraded, vulnerable and otherwise broken shell utilities. pico instead of nano, zsh instead of modern bash... hell, even something as simple as installing git is a 700mb installation with a mandatory reboot.

I'll give MacOS credit where credit is due (Apple had good design philosophies in the 2010s), but the actual operating system (see: functional network of software components) is truly awful, arguably just as bad as Windows if not worse. Just about it's only redeeming qualities are the things that Apple didn't make (like pf and process management. If you forced me to pick something that I found impressive, I'd have to choose Grand Central Dispatch, but even that isn't terribly impressive. It's mostly as if some Apple engineers decided to iterate on the fairly lackluster Linux process management. It would have been a miracle if they managed to make something worse.



> even something as simple as installing git is a 700mb installation with a mandatory reboot

Mandatory reboot? I've never experienced that with the Xcode command line tools.


I could be wrong, last time I seriously used MacOS (for both personal/work uses) was Mojave. Either way, it's installing a lot more than just the 30mb of the git binary, so I learned my lesson and just installed all the GNU stuff with my package manager. Annoying to be sure, but somehow better than dealing with Apple's default way of handling it.


Yeah, brew requires the CLT because it’s built on git, so I assumed that’s what you were talking about.


> pico instead of nano, zsh instead of modern bash

nano is a GNU clone of pico. pico is OG nano.

bash was replaced with zsh because Apple purged their OS of all GPL3 software (including nano).


Mach 2 (and thus XNU) was built on BSD 4, which was derived directly from Bell Labs UNIX V7. It has been “natively UNIX” as long as the other ancient V7 and SysV derivatives, like AIX and SunOS.

Maybe what you really mean is you don’t like UNIX and expect it to work like Linux?


Yes, Linux is better than any certified Unix and that's one of the big reasons macOS is worse for Unix-like things than Linux.


No doubt my dude, but thats not the point. BSD in MacOS is not a 'compatibility layer'

When CMU made Mach, it was a BSD OS. When Next made NextStep on top of Mach, it was a BSD OS. When Apple made OSX with NextStep, it was still BSD.


You seem to be under the impression that because you haven’t looked up if anything’s changed since 2010, nothing has.

The command line tools (except GPL ones) do get updated from FreeBSD and there’s nothing “non-native” about how the kernel works.


Switching to gnu coreutils is trivial on a Mac.


Plenty of scripts will break in mysterious ways if you replace the sed binary with GNU sed.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: