Dougall Johnson dove deep into the nitty-gritty of Apple’s Rosetta 2 x86 emulator for its ARM-based Macs, and I cannot comprehend almost any of it. But the conclusion? That is something even I can understand:
Engineering is about making the right tradeoffs, and I’d say Rosetta 2 has done exactly that. While other emulators might require inter-instruction optimisations for performance, Rosetta 2 is able to trust a fast CPU, generate code that respects its caches and predictors, and solve the messiest problems in hardware.
I remember early skepticism, even from before Apple announced it was switching to its own silicon, about the ability to make Intel Mac apps work on ARM based on Microsoft’s inconsistent attempts to emulate 64-bit x86 on ARM. Rosetta 2 was a relief. I did not buy an ARM-based Mac until earlier this year and, so, most apps I use had long ago released fully native versions, but there are still a couple of emulated applications I use, and the process feels completely transparent to me.