I always thought it was a great move for Apple if they can actually move forward with the transition - their ARM processors are second to none and they made crazy progress each year, up until A13. The experience on Macbooks is going to be excellent as soon as the most used third party programs are ported to ARM instead of being emulated. Apparently at the moment it's mostly just Apple programs that run natively, and experience on emulated programs is always going to be sub-par. That said, with the small software library circling around a dozen or two of mainstream programs, it doesn't take much to transition 90% or so of their users effectively. With little in terms of legacy or exotic software, Apple's ecosystem was just a perfect candidate for a transition to ARM.
While these chips are great for casual usage, these don't have any of the advanced instructions (like AVX, AVX2, and AVX512). Apple was smooth by not even attempting to emulate them (Rosetta doesn't work on programs that take advantage of them) so you can't see comparisons. You can only see web and light multimedia tools, which is what ARM chips excel at. While that's perfectly fine for most Mac users, especially more casual users who may never even encounter more advanced instructions, this wouldn't fly on Windows anytime soon. It's these advanced instructions and the sheer amount of operations that Intel/AMD chips can accelerate that ARM chips can't that set these processor technologies apart. Compute resources on Intel/AMD chips are spread across all common instruction sets so they can handle anything you throw at them flawlessly. ARM chips use all of their resources to go 100% into the 20% of instructions that are used 90% of the time (maybe 99% of the time on Macs) and now attempt to compete or outperform traditional x86 chips there.
especially more casual users who may never even encounter more advanced instructions, this wouldn't fly on Windows anytime soon.
Will it ever change, ARM not being able to run advanced instructions? Or is it a limitation that won't be able to be overcome due to the architecture? I don't reasonably expect ARM to take over everything, at least not with more heavy, professional users, but since most of us are casual users, it looks like the vast majority of people would benefit from an ARM chip, Mac or not.
Is it possible that devs for Windows apps (some of them, that aren't heavy-duty apps for pro users) change the architecture they develop for? Or at least add ARM support? So that in the future, people with ARM Windows machines can still run these apps on a more low-powered ARM device?
ARM is becoming "wider", meaning it's becoming heavier and less like original ARM was. Support for more stuff is being added. But if you go too far you'll end up with ARM chips looking more like today's x86 chips, except without the benefit of running legacy software. Which is imho why everyone leaves ARM as the light chips specialized at a narrow variety of tasks. They are efficient and these days perform well at those tasks. Make them more bloated and they will lose those benefits.
Who knows about the future, but people use Windows largely because of compatibility - every tool you can imagine will work on every Windows-running computer. It's a platform that had by far the most software made for it over many decades, it's still the case, and you can still run all of it no matter who makes your computer. Its biggest advantage would be gone if it went ARM, which is why it's not going to happen for a very long time, and the only reason it may happen in a very distant future is if ARM chips way significantly overtake x86/AMD/Intel processors in overall performance.
At the moment Microsoft is trying to offer ARM support just in case that happens, and there is an official ARM build of Windows that can run a small suite of ARM programs, but nobody takes it seriously, as it's not sufficient even for the most casual Windows users.
I wonder if Apple has plans and guidelines for devs to make sure ARM Macs are fully supported within the next few years, then.
Apple basically made a statement saying "you have to move over your software to ARM now, since we're moving over there and that's where all users will be soon". Apple has the benefit of having a small software ecosystem circled around a couple dozen of key programs. Barely supported niche tools or programs/games that haven't been updated in years and likely won't ever be are not something that's all that common on Macs.
Like I mentioned earlier, It's easy to manage 30-50 devs that make almost everything that your userbase uses and hope the remaining bunch ports their tools too. If not, too bad, some programs will stop working, but few people use them, and there are so few of those programs that some alternatives would crop up not long after.
That was never a problem that bothered Apple. So it's a perfect ecosystem to move to ARM.
If this happened on Windows, I would not be able to ever use most programs and games I used ever again. Businesses would collectively have to invest trillions to have their software rewritten, updated, entirely new ecosystems supported, processes redesigned and the hardware itself upgraded. Suddenly most companies would have to undergo major, expensive transformations, and many vendors would be fucked, especially if their tools were written like 20 years ago and nobody really understands how they work anymore. This was already a huge deal when Windows XP support ended, despite the fact that probably 99% of Windows XP software is compatible with Windows 10 with no rework required. Suddenly you heard of major national organizations relying 100% on some obscure software suite that turns out only works on Windows XP and they were willing to pay insane money to Microsoft to maintain support for a couple more years - then there were multi-billion dollar projects lasting years just to develop a new suite and transform the entire organization around it. As a matter of fact, I work on such project now.
I don't think PC would ever recover from a loss of such incredibly huge and diverse legacy software support - it's what makes that platform so great, and discarding it most likely would be the death of it.
Found some benches of Apple's chips against Ryzen. look at Handbrake transcode times and fps for an example of a workload that isn't as ARM-friendly:
View attachment 518
Interesting. The M1 really seems to hold its own in single core stuff. It gets ass-blasted in multi-core, as the graph shows.
Is it physically impossible for this to improve to the level of Ryzen or even Intel, or is it something that will just take time and a lot of R&D to get it to that point? I'm not sure Apple would let it stay as-is in multi-core performance if it can ultimately be improved, albeit with time. And I'm not sure if they'd make such a radical shift to ARM if multi-core is going to suck compared to the others no matter what they do. I suppose it's still possible that Apple keeps the ARM designs for the entry-level models of their Macs but the Mac Pro and maybe iMac Pro stay with Intel/AMD, possibly, since it wouldn't be up to the mark with professional Mac users. Like the ones who buy the $6K ProDisplay and a $14K+ Mac Pro for work
Hey I've got a great analogy! Imagine ARM processors are multimedia devices that have just the MP3 decoder, and X86 processors are devices that have all multimedia decoders imaginable natively built-in. You'd be all awesome on both as long as you're playing MP3 files, maybe the ARM processor will even play these a bit faster because all optimizations go into maximizing the performance of that one format. But then you suddenly get a bunch of FLAC files that you'd like to play, and the x86 processor plays them amazingly like it's nothing. But the ARM processor is fucked, it has to spend a lot of time converting each of those FLAC files to MP3 first, and then play them as MP3 files trying to mimic the lossless FLAC format as best as it can without being really capable of doing so.
That's precisely how those processor technologies differ. In that world it'd be in Apple's interest to compare their processors to others exclusively in MP3 playback performance, and since let's say 80% of users buy their products just to listen to MP3s, it'd work just well enough. Run into any other workloads and you end up being 10 times slower, not as good at, or you can't handle them at all. Sometimes it's easy, akin to converting an AAC into MP3, just requiring more time. And sometimes it's ridiculous gymnastics like converting a video to MP3 + a synced slideshow to create an illusion of having video support that in that imaginary world it completely lacks.
Following that analogy you could add extra transistors to your ARM chips to natively support FLAC or video playback, but there are hundreds/thousands of other formats that x86 chips support natively for you to do the same thing for. Then you realize by the time you're done you'll end up with a much more bloated processor than Intel's or AMD's because these had decades to optimize each of those decoders and they are engineered to perfection at this point, having squeezed every smallest efficiency out of each of them over the years. Which is why everyone's just letting ARM be ARM, drawing the line on bare necessities and assuming it's going to be a way narrower architecture meant to do a few things well, remaining small, light and as effective as possible at the few things it's able to natively do.
I think this illustrates the issue perfectly, except replace MP3/FLAC with more complex stuff, such as "decoders" aimed to natively process specific complex algorithms (encryption, vectors etc.). There is a huge array of complex commands, each of which x86 can execute as a single operation (1 "clock cycle"). An ARM chip may be able to get you the same result, but instead of each being a single operation it has to break it down into myriads of many simple steps, each of them requiring their own clock cycle, taking many clock cycles to complete the whole thing instead.