“Never attempt to teach a pig to sing; it wastes your time and annoys the pig.” – Robert A. Heinlein
Microsoft is still a software company, right? Aren’t they the guys who made Windows, Office, Internet Explorer, and Flight Simulator? So then why do most of these not work on Microsoft’s own Surface Pro X computer?
This must be Backwards Day. Microsoft has produced lovely and covetable hardware without the appropriate software. Let the news go forth from every hot yoga studio and Starbucks that the Surface Pro X is the stylish new fashion look among on-the-go Technorati. But, like the worst kind of beauty pageant contestant, it’s all beauty and no brains. “I believe in puppies, opportunity, world peace, and, uh, maps.”
The outside of the Surface Pro X is shiny and black and gives the iPad a run for its stylistic money. But what’s inside is even more interesting: an ARM processor, not an x86 chip. That’s right: an official Microsoft tablet running official Microsoft Windows 10 on an ARM chip. Pretty cool, huh?
It would be if it worked better. Trouble is, it’s not all that functional. Oh, it boots Windows fine and runs a handful of apps, but the limitations are severe, the price is high, the battery life is just average, and the benefits are hard to find.
Windows-on-ARM (WARM) isn’t a new thing. Remember Windows RT? Microsoft hopes you won’t, because RT was a colossal failure. But we’ve also had ARM-based machines from Samsung, HP, Asus, and others that run “real” Windows, not some crippled version of it. None of them worked very well, either.
And yet, the passing years seem to have taught Microsoft’s product planners very little. Surface Pro X is a huge leap forward compared to its predecessors, yet it falls victim to the very same problem: lack of apps. Which makes us wonder, what is the point of Windows on ARM in the first place?
The Pro X is fast, light, and sexy. It’s also expensive, at $999 to start. But that doesn’t include a keyboard, which is nearly mandatory but sold as a $270 option, boosting the real price by more than 25%. That’s a bit like charging extra for the wheels on a new a car.
Microsoft has ported Windows 10 to ARM, so the operating system runs natively. But the company’s premier business apps, like Word, Excel, PowerPoint, the new Edge browser, and Microsoft Teams (its alternative to Slack) haven’t been ported; they all run x86 binaries in emulation. In fact, very little Microsoft software runs natively on Microsoft’s new flagship platform. Odd.
But the situation is far worse for third-party apps, many of which flat don’t work. On Surface Pro X, third-party software falls into four categories: some apps run fine, some run slowly, some install but don’t work, and some won’t even install. Sadly, there’s no way to tell which apps fall into which category, and this may be the Pro X’s biggest failing.
Imagine plunking down $1269 for the latest Microsoft-branded Windows computer only to find out that most of your favorite Windows apps don’t work. Do you get to return the hardware? Do you wait and hope for a software update?
The official Microsoft Store doesn’t distinguish between apps that work on Surface Pro X and those that don’t. There’s not even a hint. The Store will happily take your money and let you download an app that simply won’t install, or that will install but crashes. Microsoft either over-optimistically assumed that all apps would work (unlikely) or they just didn’t bother to add a filter for compatible apps (probable). Either way, it seems like an egregious failing for such a high-profile product.
What the Pro X does run is native ARM code – of which there is very little – and some 32-bit x86 apps in emulation. It doesn’t run 64-bit x86 code at all, which seems a bit odd, since it’s built on a 64-bit ARM processor. (Compatibility with 64-bit apps is reportedly about a year and a half away.) It’s also the opposite of what users would want, since most software developers have been producing 64-bit binaries for years now. But that’s exactly the code base Surface Pro X can’t access.
Microsoft publishes a list on app compatibility that includes several little gems. Device drivers for “hardware, games, and apps” don’t work at all unless they’re written in native ARM64 code. How many ARM-native device drivers do you know of? Forget using your new printer unless Microsoft’s port of Windows 10 includes native drivers for it.
It also lists “cloud storage apps” as problematic. This might be a challenge for business users who travel – which happens to be precisely the target market for Surface Pro X. Also, “some third-party antivirus software” won’t work, although Microsoft promises to keep you safe anyway. That’s reassuring.
Most games won’t work, but that shouldn’t be a problem for business users. You can’t really go complaining to your boss that Call of Duty doesn’t run on your work machine, can you?
What you get for your $999 is a nice-looking tablet (or a $1300 laptop) with a browser and web-portal access to Office 365 productivity apps. Or you could buy round-trip tickets to Paris and a Chromebook that does the same thing.
For those native apps that do exist, performance is reportedly good, but nothing unusual. Emulated apps are noticeably slower, but still acceptable. It’s not as though the machine’s SQ1 processor (a modified Qualcomm Snapdragon 8cx) is remarkably faster than anything you’d find in other ARM-based, or even x86-based, laptops or tablets, so adequate performance is to be expected.
Battery life is about as good as other premium tablets. In Engadget’s testing, the Pro X was better than the Surface Pro 7, worse than the Pro 6, and about the same as an Apple iPad Pro.
So, let’s see… performance ranges from adequate, to acceptable, to guaranteed crash; battery life is average; price is on the high side; and software availability is a total question mark. What was the point of this machine, again?
I can understand Microsoft wanting to separate itself from Intel, AMD, and x86 hegemony. Like Apple and other consumer-electronics vendors, the company would like to have more control over its own future, independent of Intel’s product roadmap, and building ARM-based machines enables that freedom. Besides, the company has ported Windows to MIPS, PowerPC, and even Alpha in the past (none of which were remotely successful). ARM seems like the obvious fifth choice.
But to release a finished consumer product with such glaring holes seems counterproductive, almost suicidal. How long before the company is flooded with tech-support calls from angry customers discovering that their Windows computer doesn’t run the expected Windows apps, including ones they bought directly from the Microsoft Store? Good luck explaining the differences among Win32, UWP, and ARM64 binaries. An application note for IT managers doesn’t cut it; there needs to be a mechanism to prevent users from downloading incompatible code. Better yet, make it clear that Surface Pro X isn’t really a Windows computer in the usual sense. Didn’t we go through all this with Windows RT? Has nothing changed?
ARM has a reputation for power efficiency, but ARM processors were never radically more power-efficient than x86 (or almost any other processor architecture). Better, yes, but not a lot better. Most of its initial advantage was due to implementation, not architecture. Early ARM chips were built on low-voltage processes for cell phones and other mobile devices, while Intel was off building x86 chips tuned for maximum speed in AC-powered desktop machines. Of course they were different. At comparable speeds and equivalent processes, there’s not a lot between them.
Besides, the processor is just one power drain in a larger system. As IoT designers are discovering, the memory, peripherals, display – and most of all, the RF components – consume more energy than the CPU does. So even a super-efficient processor won’t make a huge difference to your overall power budget. Switching from x86 to ARM just won’t move the battery needle much, as Surface Pro X demonstrates.
It also doesn’t save you a lot of money, as Pro X also demonstrates. It’s handy to be able to integrate the LTE modem and other features on the same chip as the processor, but that’s not a reason to overhaul your hardware architecture. And whatever performance advantage the SQ1 chip might have had is completely swamped by the inefficient software emulation it’s forced to perform.
If it’s not the performance, not the price, and not the battery life… what was the point?
Maybe the Pro X is just ahead of its time, and Microsoft – and about a zillion third-party software vendors – will eventually catch up and offer a real software ecosystem to go with the sleek new hardware. Maybe ten years from now this will seem like a non-issue, simple teething pains.
The point for Microsoft is to take one more step toward eventual CPU independence. It’s just a shame that Microsoft’s customers have to pay the price for it.
No real reason you can’t build a machine with both ARM and X86 CPUs, and just use them as needed. If Microsoft don’t know how to do that, they should give me a call 😉
https://www.linkedin.com/in/kevcameron/
Throw in PowerPC, Z80, and PDP-11 and you’d have a universal computer!
Oh, really? Try doing that without rebooting the system and seamlessly handing off the memory pool from one microprocessor to the other with totally different microarchitectures. A user may want to use one as master and then switch to the other as master, not be stuck with a single master-slave configuration unless you reboot. Sure, you might try using sandboxing and VMs to get around this, but there is interconnectedness in Windows application libraries and system services that could not just shut things off and on at the drop of a hat like that. If you have a proof of concept, though, then by all means show it to us. Heterogenous OS design with multiple microarchitectures that seamlessly hand off and dovetail between each other has not been done unless one processor is always driving the OS and that isn’t a solution here.