I have a surface pro x. I can't install Google drive on windows. I can't install Linux. Affinity apps don't get graphics acceleration because of some missing directX support. Neither does Blender, or Fusion360. Darktable and Rawtherapee only work under emulation. How is this a $1000+ laptop? All those things work flawlessly on an underspecced base MacBook air with 8GB of RAM (up until you need to use all the ram to keep five chrome tabs open anyway).
I know there's some hyperbole here, but my point still stands: the author is right when they said that Microsoft hasn't given up... Because it feels they're not even trying. Apple said EVERYBODY MAKE ARM APPS NOW, and compatibility problems lasted a year. Not ten years.
Apple said EVERYBODY MAKE ARM APPS NOW, and compatibility problems lasted a year. Not ten years.
Because Apple's priority has never been legacy support and backwards compatibility but Microsoft's whole business model and key advantage with Windows is legacy support and backwards compatibility. It's a different beast when you're marketing to the enterprise instead of personal users.
Uh, no. What they did is make sure x86 software still works perfectly. And not just Mac software - you can run x86 Linux server software on a Mac with Docker, and you can run DirectX x86 PC games on a Mac with WINE. Those third party projects didn't do it on their own, Apple made extensive contributions to those projects.
I'd like to go into more detail but as a third party developer (not for any of the projects I mentioned above) I signed an NDA with Apple relating to the transition process before you could even buy an ARM powered Mac. Suffice to say the fruit company helped developers far and wide with the transition.
And yes, they wanted developers to port software over to run natively, but that was step 2 of the transition. Step 1 was (and still is) making sure software doesn't actually need to be ported at all. Apple has done major architecture switches like this several times and are very good at them. This was by far the most difficult transition Apple has ever done but it was also the smoothest one.
It's 2024, and I still have software running on my Mac that hasn't been ported. If that software is slow, I can't tell. It's certainly not buggy.
Only real issues that I've seen lately are upstream with QEMU, which will probably be sorted soon, if they're not already. I'm absolutely amazed at how well they implemented the x86_64 compatibility.
The upcoming Qualcomm chip certainly looks good... in the synthetic benchmarks we've seen so far.
ARM devices, particularly on windows, often look good in synthetic workloads, but falter in real-world tasks.
Yeah, right now the benchmarks are competitive... with AMD's chips from last year. When the Snapdragon X Elite comes out, it'll be against AMD's Strix chips (although those are delayed), which will be a sizable performance uplift, and won't have to do any x86-to-ARM translation.
Both Intel and AMD will lose some potential market share, sure, but I'm tired of people who don't know what they're talking about acting like Qualcomm will be able to crush AMD or Intel just because they use an ARM CPU. It's not how things work.
The ARM architecture does apparently (I'm no expert) have some inherent power-efficiency advantages over x86, and it sounds like the Snapdragon X Elite will be specifically designed for high-performance mobile computing with low power consumption like the Apple M-series chips. So, all else being equal, you'd expect Qualcomm to have an advantage in laptops with this chip, but all else isn't equal because the software isn't there yet, and no one in the PC market is quite in a position to kickstart the software development like Apple is with Macs.
The ARM architecture does apparently (I'm no expert) have some inherent power-efficiency advantages over x86
Well, the R from ARM means RISC, and x86 (so, by extension, x86_64) is a CISC architecture, so they are not even in the same "family" of designs.
Originally, CISC architectures were more popular, because it meant less instructions to write, read, store, etc. Which is beneficial when hardware is limited and developers write in assembly directly.
Over time, the need for assembly programming faltered, and in the 90s, the debate for CISC vs RISC resurfaced. Most developers then wrote code in C and C++, and the underlaying architecture was losing relevance. It is also worth noting that due to a higher number of instructions, the machine code is more granular, and as a result, RISC code can inherently be further optimised. It also means that the processor design is simpler than for CISC architectures, which in turn leaves more room for innovation.
So, all else being equal, you'd expect Qualcomm to have an advantage in laptops with this chip, but all else isn't equal because the software isn't there yet, and no one in the PC market is quite in a position to kickstart the software development like Apple is with Macs.
Now, a key consideration here is that the x86 architecture has been dominating the personal computer market for close to half a century at this point, meaning that a lot of the hardware and software is accommodating (wrt functionality, optimisation, etc) for it specifically.
Therefore, RISC architectures find themselves at a disadvantage: the choice in Operating Systems is limited, firmware and drivers are missing, etc. Additionally, switching to RISC means breaking legacy support, or going through emulation (like the Apple M3 does).
However, in our modern ecosystem, the potential gain from switching to a RISC architecture is considerable (storage is cheaper than ever, RAM is cheap and fast, and seldom anyone is writing assembly anymore. Plus, those who do might enjoy the higher degree of control the additional granularity affords them, without having to do everything by hand, given the degree of assistance modern IDEs offer), and it will gradually become a necessity for every vendor.
The challenge here is in breaking a decades long dominance that originated from a monopoly: if you have paid attention to what Apple has been doing, they initially used large parts of FreeBSD to build a new Operating System that could run on their custom processors (Motorola 68k), and then built the rest of their Operating System (Darwin and Aqua) on top of it. This afforded them the possibility to switch to Intel CPUs in 2005, and back to ARM in 2020 with their M series CPUs.
The quality of their software (in large parts derived from the quality of free software and of staggering design work) has allowed them to grow from a virtually negligible share of computer users to the second place behind windows.
Now, other Operating Systems (such as Linux) have the same portability characteristics as FreeBSD, and can feasibly lead to such a viable commercial OS offering with support for several hardware architectures.
"All" that is needed is a consistent operating system, based on whichever kernel fits, to supplement MacOS in the alternative offering to windows.
Most software would be available, and a lot of firmware would too, thanks to ARM being used nearly exclusively in mobile phones, and most mobile phones running a Linux kernel.
Once we have a (or better, a few) Linux or BSD based operating system(s) with commercial support, consistent design, and acceptable UX for "normies", such CPUs will become a very valid offering.
Until commercial games and professional software start coming with arm versions this isn't going to work out. And even if they did, I'm not entirely sure if it's possible to use the same gpus on arm at all so even if they really push it, people that do pc gaming are going to reject it.
It just needs to be better than the Intel CPUs with iGPU that power most laptops. Increased perf per watt is the first goal. Cloud service providers will follow suit, leaving x86 gaming machines as an edge use case. Once PS6 or PS7 runs on ARM then it’s game over.
I just wish we'd get solid, affordable RISC-V already. Especially with the arbitrary-length vector instruction extension, which I find to be a much better design for hardware compatibility than the fixed width extensions in x86 (and ARM too, AFAIK).
Software tends to be written against an operating system or slightly more high-level API, not against an instruction set. We're not in the 1960s, any more, compilers exist.
Even back during the x86 to x86_64 switchover people didn't re-write software, we mostly just cleaned up legacy code, removing old architecture-dependent tricks that wouldn't work in 64 bit mode and hadn't been necessary to achieve proper performance for a couple of hardware generations, anyway.
There's always going to be exceptions but if your calculator app needs more work than a recompile you did something wrong. Possible sources of nastiness in otherwise well-written software include anything that relies on manual memory layout, mostly alignment issues (endianness isn't an issue x86 vs. ARM) and very occasionally some inline assembly for the simple reason that inline assembly has become exceedingly rare. I say "well-written" because there's e.g. C code out there hitting so much undefined behaviour that it compiles on exactly one compiler and runs on one architecture but even then it's a case-by-case call on whether to rewrite or clean it up. I'd tend towards rewrite in Rust but there's conceivable exceptions. Also you should've fixed that shit up years ago.
I recently bought an Apple Silicon laptop and I’ve noticed that only a handful of my apps are run in Intel translation mode. Intel apps are significantly slower to launch because they front load the code translation, but I’ve been surprised to see how much software is fully native or universal now. Apple has done a good job giving developers the tools to write code that is portable, but it’s been stretching the pain over servers revision cycles. For example dropping 32bit software support two versions ago. I am not convinced Microsoft has the nerve to break compatibility but Linux will be fine.