When Microsoft announced Windows 10 on ARM in December 2016, it touted the platform’s battery life and connectivity advantages. Left unsaid, of course, was that this platform’s compatibility issues would prove problematic for years to come: From the outset, Windows 10 on ARM (WOA) was designed to run 32-bit Win32/x86 desktop applications directly on the system, unchanged, via emulation technology. But it couldn’t run 64-bit applications at all, not even ARM64 apps. That capability eventually arrived, but we were told repeatedly that Win32/x86-64 app compatibility was impossible.
But the compatibility story was initially even more complicated than that. WOA couldn’t run entire classes of applications, including shell extensions. It couldn’t utilize x86 drivers, which is as big a problem as not running x86-64 apps. And it didn’t support Hyper-V virtualization.
As bad, the first generation WOA PCs were based on the woeful Snapdragon 835 SoC and the performance was abysmal, even on my Envy x2 review unit, which came with double the RAM (8 GB) that HP was offering at retail. That these PCs were further hobbled by Windows 10 S mode is, well, impossible to explain.
Ultimately, I found myself in an all-too-familiar position with WOA: My initial excitement was slowly chipped away by a steady drumbeat of bad news as the reality of this platform became clear. The problem with WOA, I wrote in April 2018, was that it existed solely because Microsoft wanted to goad Intel into doing better, but it was released too early, inflicting its performance and compatibility issues on early adopters.
By that August, I was trying to figure out when and how WOA could make sense as a shipping product. Microsoft and Qualcomm were working to move past the Snapdragon 835 to the 850 and then to something originally called the Snapdragon 1000, which was eventually rebranded to the 8cx. These evolutions of the hardware platform would improve the performance over time.
Well, the Lenovo Flex 5G I’m currently reviewing includes the latest version of this 8cx chipset, which now supports 5G networking too. And with this change, I feel like WOA is starting to make sense, at least from a performance perspective: Native performance is excellent, and in my early testing, emulated x86 performance ranges from excellent (Office) to fair (Visual Studio).
But compatibility has remained an ongoing concern, is still, as I noted in January 2019, “problematic.”
That said, there are signs of life. The new Microsoft Edge is available as a native ARM64 app now on WOA and users will simply get this version when they download it from Microsoft.com or have it automatically update over legacy Edge via Windows Update. Again, it’s early, but Edge performance seems excellent on the Flex 5G, and everything—including extensions—just works. This is important because Windows users use their web browser more than any other app, so Edge being native bites off a big chunk of the compatibility complaint.
And by late 2019, there were rumors that Microsoft was working on bringing x86-64 app compatibility to WOA. Microsoft had hinted at this during the Surface Pro X launch, and then it confirmed the news in May. This support won’t allow WOA systems to utilize the broad world of x86 drivers, but it will at least let users install 64-bit applications like Photoshop. It’s a big deal.
And it can’t come soon enough. While I recently switched from Adobe Photoshop Elements to Affinity Photo—Photoshop had been perhaps my most problematic incompatible app on WOA—it turns out that this new app is also 64-bit only. So it won’t work on WOA either. Sigh.
But it’s instructive to look back on the compatibility issues I had with WOA two years ago and see what, if anything, has changed.
The Flex 5G ships with full Windows 10 Pro, with no S mode to be found. That alone is a welcome change.
Back then, I was using Google Chrome, and the installer correctly detected that it needed the 32-bit version, which worked but was a bit slow. Having a native ARM64 version of Edge instead of an emulated version is a huge improvement.
In 2018, I was using MarkdownPad 2, a 32-bit text editor, and I still use it now, but only for the book. It still works well on WOA, as does the emulated Microsoft Office suite. So that’s all good. (And I’m curious whether Microsoft can tell third-parties what it did to make Office feel native on WOA. Surely, there is some advice to be had there.)
I’ve been writing code again since last fall, so installed Visual Studio 2019 Community. This is a 32-bit app, so it works. But the performance is terrible, and my initial compile of the WPF version of .NETpad was breathtakingly slow. It was like watching a slow-motion video. But at least it worked. (And yes, the .NETpad app runs fine.)
I mentioned that Affinity Photo won’t even install. I’m not sure what I’ll do here, but most probably I’ll have to go with Paint.NET on this system.
One thing I didn’t write about two years ago was drivers. And this is interesting.
WOA relies on so-called class drivers, which are the drivers that Microsoft provides with Windows. For the most part, you should find that hardware compatibility is fine: You plug in a USB stick, a printer, a dock, or whatever, and it will probably work. The issue is with the driver packs that many hardware makers provide for their products. These things often include both the actual drivers, which won’t work in WOA, as well as special software that goes beyond the built-in capabilities in Windows.
An all-in-one printer, which combines printing with scanning and even faxing, is a good example. And since I have a few of these in the house, I thought that might be a good test. And it was: HP has a nice store app called HP Smart that is available from the Microsoft Store, and it seems to work fine under WOA. But if you dig deeper, you can see the issue: Basic printing, for example, is fine, but if you want to access more settings than the stock set, you only see the Windows interface with WOA.
On real Windows 10, you get HP’s much more thorough customizations.
To be clear, this isn’t a dealbreaker: The printing capabilities in WOA would probably meet most people’s needs, and it appears that scanning and faxing work normally in WOA too. But it’s kind of interesting to see the differences between how this works on “real” Windows and WOA.
With the ongoing caveat that it’s still early, I guess I’d say that WOA has improved over the past few years thanks to some great performance and compatibility improvements, but that there are still challenges that could make this platform unacceptable to many individuals. Like many of you, I’m sure, I wish Windows 10 on ARM would improve more quickly—seriously, it’s been three and a half years already—but this is good progress overall.