Following Apple’s announcement to gradually abandon the Intel platform in favor of that of ARM, it is interesting to come back to Microsoft’s errors with Windows on ARM. It all starts with telling consumers what works and what doesn’t.
If there’s one lesson Apple should know about supporting apps that run on both x86 and ARM, it’s this: tell users which apps are running which processor and steer them without detour towards the best experience. It seems obvious. But as Apple navigates its transition from Intel x86 Macs to Macs built around its own ARM silicon, I can’t help but think of the things I wish Microsoft and Qualcomm had experimented with to make the Windows experience easier. on ARM.
It starts with communication. When Asus launched its NovaGo laptop with a Qualcomm processor inside, we explained the pros and cons of the architecture, specifically what it could and couldn’t do. Two years later, this article still seems relevant. Here’s how Microsoft stumbled along the way and where Apple could go wrong too, unless it learns from those mistakes.
Long battery life and always-on connections were touted on Qualcomm-based PCs, but software always held it back.
Talk to developers, but also to users
No user wants to wade through a developer’s documentation to figure out why they should or shouldn’t buy a product. But that’s exactly what Microsoft is asking consumers to do. How Windows emulates compiled instructions for x86 processors to an ARM architecture is summarized in an arduous support document on Microsoft’s site. That’s not really a good approach. The Redmond publisher has never made any real effort to inform users of the limitations of the ARM platform and the options available to overcome these obstacles.
Let’s say you want to download the Zoom video conferencing app on Microsoft’s Surface Pro X, powered by an ARM chip. You won’t find it on the Microsoft Store, forcing you to go to the Zoom site. What the latter doesn’t tell you, of course, is that a Windows PC on ARM still can’t run a 64-bit application in emulated mode. So, if a consumer tries to download the 64-bit version of the Zoom app on the Surface Pro X, they will face a big error message preventing its installation. It’s a barrier between a consumer and an enjoyable experience, and I bet it’s one of the main reasons Windows-on-ARM PCs haven’t sold well.
A long transition
Apple seems to be going down the same path. Like Windows on ARM, the Cupertino company also uses code to translate instructions written for X86 processors into instructions understandable by its ARM chips. On the Mac, this code is known as Rosetta, the same translation software that Apple used to facilitate the transition from PowerPC to x86. Now, Rosetta2 (or just Rosetta) is designed to take code written for x86 and allow it to “run” on the Mac’s new ARM silicon. Part of ‘just working’ seems to involve ‘just waiting’. As Apple says in the developer documentation now posted on its site, “the translation process takes time, so users may perceive that translated apps sometimes launch or run slower.”
Users will also need to help their Mac redeem the correct code. “If a binary includes both arm64 instructions and instructions x86_64, the user can tell the system to launch the app using the Rosetta translation from the app’s Get Info window in the Finder,” Apple explains. “For example, a user can enable Rosetta translation to allow the application to run older plugins that do not yet support the arm64 architecture”.
Apple showed off an ARM-based Mac running iPhone apps during its WWDC 2020 keynote on June 22.
However, Rosetta will not translate kernel extensions and hypervisors that virtualize x86_64 platforms. Rosetta also won’t translate AVX vector instructions, which Intel first implemented in its 2nd generation “Sandy Bridge” chips in 2011. To recap, Apple is telling developers (not users!) that emulated apps will run slower than native code, so users may need to configure an application manually to run in emulated mode to allow full compatibility, and that its translation software will not run instructions that have been in place for about nine years. It won’t just be “it works” – and users don’t know that yet.
Make it hard to find compatible apps
App stores are where users first interact with apps, and the Microsoft Store is still a very bad experience.
At present, every Windows user knows about the many shortcomings of the Store. There’s no information telling you when the app was last updated, let alone a changelog. You cannot see the number of downloads to date.
Microsoft also buries the processor architecture supported by an application. If you are already on a Windows on ARM (WoA) PC, Microsoft will hide incompatible apps. But if you want to know what is available for WoA PCs before buy one, you’ll have to go app by app to find out for yourself.
Show apps who does not work not on ARM (after purchasing the PC) is a discouraged approach.
In a few years, the question of whether a Mac application is compiled for ARM or x86 will become moot, as Apple has decided to switch all of its Macs on ARM. But for now, customers on Windows and Mac platforms can choose between the two processor architectures, which puts them in the same situation. Admittedly, it’s probably too early to expect Apple’s Apple Store to provide this information. We know that some two of its major software partners, Adobe and Microsoft, support Apple’s ARM efforts. We wonder, however, how many smaller publishers will bother to recode their apps and utilities for ARM, and how quickly other content creation app developers will sign up.
However, it is essential to know which applications are coded for each processor. “Universal” apps will work on both platforms. But we really don’t know how Apple’s ARM processors will perform, nor do we know how well any given application will perform on each platform. It is therefore important for Apple and PC customers to know which applications are natively coded for a particular processor, which will be optimized for performance, and which will be emulated and affected by performance. The App Store, whether on Mac or Windows, should be the starting point for these conversations.
So far we have focused on performance, compatibility and communication. In a test, I usually downgrade a laptop’s rating if it comes in cluttered with unnecessary third-party apps. Acer, for example, ships apps that suggest other apps, like its suite S-Collection. But that’s exactly what Windows on ARM (and Mac) needed and lacked: a showcase of apps, coded natively for ARM, that showcase the platform.
Microsoft’s Package Manager could be an easy way to download a collection of optimized Windows on ARM software.
On Windows, neither Microsoft nor Qualcomm have intervened in this regard. Rather than user-generated collections , we should have an official branded website listing (and linking!) apps that have been optimized for ARM. Connected PCs should be preloaded with ARM-optimized apps, or at least provide a gateway to an optimized experience. The ability to download Windows apps to ARM optimized might be a feature of the new WinGet package manager utility from Microsoft.
I suspect Apple has gotten this right, and that part of Apple’s App Store will soon be titled something like “Runs best on Apple” wouldn’t surprise me. By presenting users with a collection of apps that they will use frequently, reassuring them that their performance is optimized, and then regularly adding and updating these apps, they are assured that the provider is with them.
Why switch to ARM
Today users still don’t understand why they should move away from x86 and embrace something new and unfamiliar like ARM. And if they do, the explanation is always framed in terms of hardware. How and why customers need to transition their software is usually left out, and everyone gets confused. Let’s hope that Apple analyzes Microsoft’s successive mistakes in detail and manages to do better.