Works great until you're the author of an application written in Rust and want to distribute MacOS binaries which are automatically generated in CI/CD.
The only (legal) way to compile a Rust binary that targets MacOS is on a Mac. So your CI needs a special case for MacOS running on a MacOS agent. Annoyingly, cross compiling CPUs architectures doesn't work so you need to an Intel and arm64 Mac CI agent - the latter being unavailable via Github actions.
To make things even more bizarre, Apple doesn't offer a server variant of MacOS or Mac hardware, which seems to indicate they expect you to manually compile binaries on your local machine for applications you intend to distribute.
Asahi Linux is introducing support for some brand new Apple Silicon features faster than macOS.. M1 has a virtual GIC interrupt controller for enhanced virtualization performance. Linux supports it, macOS does not.. M2 introduced Nested Virtualization support. The patches for supporting that on Linux are in review; macOS still doesn't support it.
Apple appears to have a one of a kind special license for ARM (due to being a founder of the company) so they can pick and choose otherwise "required" extensions to support and add their own extensions as well. You can't directly compare an Apple design to a specific ARM version because of this.
Kernel integration and a virtualized filesystem that isn't bottlenecked by APFS. Docker is excruciating on Darwin systems.
> What are you talking about exactly?
Apple makes hundreds of weird concessions that are non-standard on UNIX-like machines. Booting up a machine with zsh and pico as your defaults is not a normal experience for most sysadmins, nevermind the laundry-list of MacOS quirks that make it a pain to maintain. For personal use, I don't think I'd ever go back to fixing Mac-exclusive issues in my free time.
> no _real_ support for video games
Besides Resident Evil and No Man's Sky (this generation's Tomb Raider and Monument Valley), nobody writes video games for Metal unless Apple pays them to.
For a while, MacOS had a working DirectX translation stack for Windows games, too. Not since Catalina though.
> Kernel integration and a virtualized filesystem that isn't bottlenecked by APFS. Docker is excruciating on Darwin systems.
Docker is great as long as you don't use bind mounts. I use it daily for development in dev containers.
> Besides Resident Evil and No Man's Sky (this generation's Tomb Raider and Monument Valley), nobody writes video games for Metal unless Apple pays them to.
There are plenty of great games on macOS. Factorio, Civilization, League of Legends, Minecraft. But you're right that there aren't too many AAA games.
I use UTM and Docker on a daily basis and it is extremely smooth. What exactly is missing?
> an annoying development toolchain
What are you talking about exactly? For example most Python and Rust builds just work out of the box.
> no _real_ support for video games
https://docs.unity3d.com/Manual/Metal.html
These claims look like a bit of an exaggeration.