Microsoft: No x86 apps for ARM

So, The Register reports that Windows on ARM will not have compatibility with apps compiled for x86. Intel has been saying this for a while, while Microsoft has been mum. So now we know.

There are arguments both for and against having an x86 emulation layer.

Let the old x86 apps run on it, and you’ve opened the architecture to the largest software library in history–more software than is available for Android or Apple IOS, and more software than is likely to ever be available for them. It would give users something to run while they wait for new, native ARM-compiled Windows apps. And if they really need to be able to take some weird, discontinued Windows app from the 1990s with them on a tablet, they’d have that option. Forever.

Microsoft counters that those old applications aren’t coded for power savings and aren’t likely to give a great user experience. That sounds suspiciously like something Apple would say. And that’s a valid point. Sometimes it makes sense to start over, and one of the reasons Windows has always struggled to maintain performance with other operating systems is all of that legacy code. If you really want to run old DOS applications that shipped when the IBM PC first appeared in 1981, most of those programs can be coaxed to run under 32-bit Windows 7, 30 years later. That’s always been one of Microsoft’s selling points on Windows, so it’s a change of mindset. The other argument against emulation is that ARM won’t emulate x86 at anything resembling full speed. The question there is whether an application running at half speed is better than not running at all.

There is historical precedent.

Windows NT, the direct ancestor to Windows 8, was designed on and for RISC processors to be a high-performance workstation and server operating system to compete with Unix. Then they ported it to x86 because, well, it was Windows and Windows is supposed to run on x86, right?

I had first-hand experience with Windows NT running on DEC Alpha CPUs. We bought three servers, built by Microway, with DEC Alphas in them. We turned two of them into domain controllers and the third into a Lotus Domino server. They were mind-numbingly fast, but driver support was a major issue. I managed to find one Token Ring card that had NT Alpha support so we could put them on our network. Fortunately, the driver worked well, and once I got three of those cards, the systems ran like cheetahs. Lotus Domino on Alpha was excellent, and NT 4.0 ran well on the Microway boxes. We were able to get performance out of those machines that Intel couldn’t deliver at that point in time, and at a surprisingly good price, too. When Intel finally did match the performance, their comparable machines cost more.

I know of another shop that was implementing a Windows NT domain around the same time. They chose to buy Alpha boxes from DEC itself, and bought machines that, I guess, were really designed to run DEC VMS. Windows NT ran, but from what everyone there told me, it wasn’t especially stable. By the time I started working there, they were phasing those Alpha boxes out in favor of x86.

I don’t know what, specifically, Microway did differently than Digital did. Digital made the CPU, so of course they should have known how to make a good system around it. But the Microway boxes were definitely intended to run Windows NT and only Windows NT. Maybe they ran Windows NT better than DEC’s own machines did. Or maybe I knew something the guys in the other shop didn’t.

But two things killed Windows NT on RISC. The lack of software, for one. The former employer who bought those Microway Alpha boxes was perfectly happy with them, but never bought any more of them. Most Windows NT software was only released for x86.

The uneven user experience was the other thing. We were lucky in that our Domino administrator knew of other shops running Domino on Alpha under NT, so he was able to confirm things with them before we even bought the machines. And there was another place on campus that was running its NT domain on Alphas. They were the people who told me about Microway in the first place. We knew what we wanted to do would work, because they were already doing it. We were happy.

Talk to the guys at my next job, who deployed NT on Alpha around the same time, and most of them will tell you NT on Alpha was a disaster. We set out to do exactly the same thing, but our experience was so different that you’d think we were talking about two completely different products.

But from Windows 2000 on, Windows has given a fairly consistent user experience, even as PCs have grown less and less similar. There’s a lot more difference between Intel and AMD x86 CPUs today than there was in 1998-99, when Windows 2000 was in development. Back then, Intel Pentium MMX and AMD K6 CPUs could still plug into the same motherboards. If Microsoft can provide a fairly consistent user experience across that ecosystem, then they stand a chance of doing the same on ARM-based systems as well. It’s not a guarantee, but Microsoft has a lot more experience now than they had in the mid 1990s.

The software is the other issue. If Microsoft releases a version of Visual Studio with ARM as a compiler target before Windows 8 comes out–or the same day, at the absolute latest, they stand a chance. They should realize this. Versions of Windows that had compelling software available for them on Day 1 usually succeeded–Windows ME and Vista were the two exceptions to that–but versions that didn’t have software available on Day 1 sold so poorly that they made Windows ME and Vista look like raging success stories.

But once again, Microsoft has an insurance policy.

Intel desperately wants in the mobile space too. And they’re working furiously with Google to get Android running on x86. I’m not sure who’ll want it, given that Android has always run on ARM, all the existing Android apps run on ARM, and ARM CPUs sell for about 1/3 the price of a similarly capable Intel Atom CPU. Maybe Intel intends to cut prices.

But this plan means Intel will be in the mobile space too. And that means somebody (cough Acer! cough) will pair Atom CPUs with Windows 8 on tablets and other small-factor devices. So if anyone wants or needs to run legacy x86 Windows apps on a mobile device, they could just do it on an Atom-based machine running Windows 8. They might even be willing to pay a premium in order to do so. Given Intel’s addiction to premium pricing, that could be Atom’s saving grace.

Microsoft and Intel are preparing for a life apart, but they may be headed for a reunion. The question is who exactly will be saving who.

If you found this post informative or helpful, please share it!