Just FYI, there are ARM versions of both Linux and Windows these days. There are also high end ARM server CPUs, [1] and Amazon even offers EC2 instances backed by a custom ARM CPU. [2] (While we're at it Linux also supports POWER9. [3])
[1] https://www.phoronix.com/scan.php?page=article&item=ampere-a...
I’m aware that Linux supports ARM (it also supports PowerPC) but if I’m not running my services on an ARM server, that doesn’t help me. Hence the last sentence of my post.
Didn’t you mean Macs are the very best development environment?
Honestly I don’t think they’re very good for development, or at least the type of development I’ve done. For iOS development they basically lock you in, and for frontend web stuff it’s probably fine if the convenience of testing against iOS or desktop Safari combined with having a Unix environment outweighs the value of convenient testing against MS browsers or the advantages I discuss below.
But the more you live in the terminal, the more of a mess it becomes compared to Linux. All the built in utilities are either very old or feature-impoverished BSD variants. Making it usable at all requires Homebrew, which manages to get broken by every major OS update. The default file system is case insensitive, which probably improves usability for mundanes but can result in some utterly broken Git workflows. And the more effort you invest into automating your workflow, the more time and effort you have to expend on the relatively useless and non-transferrable skill of macOS system administration. So I switched to Linux. Tiling window managers are nice, too.
What did Apple gain from switching from PPC to Intel in the first place? They gained faster processors (their market share was insufficient to keep performance parity) and the ability to virtualize or even dual-boot Windows on Mac hardware. I don’t see these factors changing; iPhones and iPads don’t have the performance properties of laptops and desktops, meaning even Apple’s internally-developed ARM architecture is going to treat Macs as as much of an afterthought as Motorola and IBM did back in the day. Meanwhile, even if Windows compatibility is less relevant, the ability to virtualize Linux distros on Macs has become more relevant.
If I’m a software developer and I want to run my code on a x86-based Linux server somewhere, I’ll often want my development environment to be capable of reproducing that same environment, and tools like Vagrant and Docker accomplish this on Macs using virtualization. Without a shared CPU architecture, these tools will either stop working entirely or rely upon emulation, which would hinder performance and potentially introduce inconsistent behavior compared to the real hardware. Now, it’s true that iOS development relies on the Mac performing ARM emulation. But there’s already a working solution for this, and you can still use actual iOS hardware for testing. If I had to connect my Mac to an x86-based Linux box for testing and development, why wouldn’t I just use the Linux box? And the Linux box is a server that I can either Remote Desktop or SSH into, why would I need a Mac to be able to do that? Maybe I’m biased because I already think Macs aren’t a very good development environment, but I don’t really see switching CPU architectures as a move that makes them any better. All bets are off if ARM servers actually take off, though.