Will Windows 8 have an ARM app gap?
It really should have been obvious, but in case you were confused, ARM versions of Windows 8 will not be able to run x86 apps and vice-versa. In fact, Microsoft has said as much in the past. This is a model Microsoft has used unsuccessfully in the past, but are things different now? Will ISVs make more than one binary?
Vague talk about the universal nature of Windows Metro apps led some to assume that such apps will run on any Windows 8 installation, either ARM- or x86-based. This is not the case. Metro apps will be composed either of x86 binary code or ARM binary code, and each can only run on the appropriate CPU.
Clearing up a confused question, Microsoft Windows & Windows Live president Steven Sinofsky addressed the matter up at an analyst briefing last week (the transcript is inexplicably available only as a Word .docx file). Sinofsky:
We've been very clear since the very first CES demos and forward that the ARM product won't run any X86 applications...What we talked about yesterday was -- what we announced yesterday for the first time was that when you write a Metro style application, all the tools are there to enable you in any of the languages that we support to automatically support ARM or X86. I think that's the key part of everything that we'll run.
Note that Microsoft always says "Metro style". I was confused about all this for a while myself, assuming that "Metro" was a new application execution model, but that's not the case. It's more of a UI design specification than anything else, and programs written to this design are native Windows program running native code. Metro is just a style of app, like conventional apps which Microsoft seems to call "Desktop apps" now because they run on the Windows Desktop UI in Win8. The cross-platform capabilities that Sinofsky was talking about were in the development tools.
Once I understood about the different binaries I was immediately reminded of Windows NT. We're coming up on 20 years since Microsoft first started showing Windows NT and in fact I wrote the first hands-on review of what I believe they called a preview version of the Win32 SDK, including the Win32 environment itself.
The 3.x generation of Windows NT came out available for x86, MIPS and DEC Alpha processors, and was eventually ported to PowerPC as well. As with Windows 8, developers had to deliver different binary versions of Windows NT applications for each CPU architecture they wanted to support. Long story short: it failed. By and large, people only wanted x86, even though this was all going on at a time when it was widely believed that the others, the RISC processors, were on a performance road that would leave x86 in the dust. ARM, incidentally, is a RISC architecture.
It was common for apps to be available only on x86, so perhaps there was a bit of the chicken and egg problem, but ISVs didn't want to have to manage, distribute and support multiple binaries. Today, things may be different enough that they won't mind.
The biggest difference is electronic distribution. Back in the early 90's you actually had to burn CDs (and probably even floppies!) for all your versions. Now you stick it in a folder and the software pretty much distributes itself. OK, I'm abstracting away quite a bit of hard work there, but software distribution is practically no trouble at all these days compared to the state of affairs 20 years ago.
At least at first, people will be attracted to Windows 8 x86 and ARM systems (basically tablets I imagine) based on features, functions, looks. This too is nothing at all like 20 years ago. But once they start using them, will they be able to find the apps they want for their architecture? Will there be an app gap? In fact, there will have to be, because the ARM systems will never run all the zillions of Win32 programs written for Win7 and prior.
Don't be surprised if the same thing happens as happened in the 90s. It's entirely possible that Intel will close any performance and power consumption gaps enough that the difference won't be compelling. At that point everyone considering an ARM system will have to deal with the fact that there is no legacy software support. Maybe this won't matter much on tablets, but it might and anyway desktops aren't going away. Intel could fight off the RISC challenge once more.
Larry Seltzer is a freelance writer and consultant, dealing mostly with security matters. He has written recently for Infoworld, eWEEK, Dr. Dobb's Journal, and is a Contributing Editor at PC Magazine and author of their Security Watch blog. He has also written for Symantec Authentication (formerly VeriSign) and Lumension's Intelligent Whitelisting site.