JIT-inside-JIT inception is horrible for performance, but Apple needed to make sure compatibility was as broad as possible.
Fortunately, browsers and language runtimes with JITs are usually the first things to go native and in most cases only need fixing in one place - things like Safari, Chrome, Python and node.js (and their underlying JITs) were already ported to ARM64 when Apple switched the Mac. I guess the main problem was Electron (and similar) apps bundled with x86 versions of chromium/node.
Huh? That's certainly not my experience at all. Far from it. Besides, why would Apple put any effort in the Rosetta's if that is the case? Here, some 64bit apps running in Mac OS X 10.7 still run in macOS 15.5 with and without Rosetta 2.
Maybe you've been lucky
🙂 Plus, I'm thinking of users who keep their hardware and OS reasonably up-to-date (in case you're still rocking Snow Leopard).
Things like Rosetta, Rosetta2, Carbon, Classic etc. are only transitional solutions, which Apple kills as soon as feasible.
Classic: 2001-2006 (Died with Intel Macs)
Carbon: 2001-2012 (the long-runner!)
Rosetta: 2005-2011
Rosetta 2: 2020-2027 (mostly - depreciation announced at WWDC).
x86-32 apps: 2005-2019 (another long-runner)
C.f. 16-bit Windows/DOS support in NT: 1993 - 2021
You could run Win16 apps and non-extended DOS apps in the 32-bit version of Windows 10, the 32 bit build was only dropped with Windows 11. If anybody wants to revise that to some point in time when "everybody" was using 64-bit Windows, fine, but we're still probably talking sometime in the 2010s.
Apple's doing or the app maker?
A mixture - and irrelevant to the home user. Also depends what the App was doing - no reason for a text editor to get broken by changes to kernel security etc. but (e.g.) Parallels only used to last for maybe 1 or 2 major OS upgrades and I gave up on Photoshop Elements because it kept getting broken by OS upgrades (file that one as the developer's fault, I think).
This is true for many programmers and toolmakers going back many decades. With or without Apple. Like a 3rd-party programmer on Atari, Mac, and NeXT for the 680x0.
Well, firstly, the current Mac platform has more in common with NeXT than "classic" Macintosh (already been discussed).
Then anything with a *nix heritage (NeXT, MacOS, Linux) is built around an ethos of API/source-code-level portability rather than binary compatibility. The C language is particularly handy in its support for macros that can help deal with byte order, word length etc. issues at compile-time, and the whole thing is descended from mini-computers and fast workstations that were less dependent on lovingly hand-crafted assembly language.
Also, advantage to anything that started with 68k rather than early (pre-386) x86 - although some versions of the 68k only had 16- or 8-bit busses the code was "clean" 32-bit where 8086 was initially only 16-bit with abominations such as near and far pointers that even infected high-level code, and latterly the whole real/protected mode etc. malarky. Even early ARM only used 24(?)-bit addressing, and the move to true 32 bits broke older RISC-OS binaries.
Not sure that Atari PPC was ever really a mainstream contender... Although things like ST, Amiga and RISC-OS are still going in some form or other today (mostly using Raspberry Pis last time I looked) they're tiny hobbyist niches happy to wasste time getting stuff to work, just for fun.
Perhaps, don't know. And what industry?
Well, yeah, if we're talking viable desktop/laptop personal computing it's really only a 2-or-3-horse race between Mac, Windows PC and
maybe Linux (which kinda covers ChromeOS and Android). If you count Linux, then it wins, since it has been multi-platform since the 90s and has the *nix tradition of API-level compatibility
plus is dominated by open source software that anyone can port and distribute.
Windows comes last - partly thanks to (until relatively recently) legacy roots going back to CP/M and the first microcomputers.