X
Tech

Just how important is Desktop App support for Windows 8 ARM tablets?

How difficult or easy will it be to move legacy Windows apps to Windows 8 on ARM? Developers don't yet know for sure, but theories abound.
Written by Mary Jo Foley, Senior Contributing Editor

Since rumors began circulating late last week that Microsoft might cut the ability for "Desktop App" non-Metro-style apps to run on Windows 8 ARM tablets, devs and users have had plenty to say about the potential significance of this move.

(Microsoft representatives still have not commented publicly as to whether this rumor is true. They didn't address the issue at all during the December 6 preview of the Windows Store, or offer comment as to  whether the late February 2012 Windows 8 beta will be available for both x86 and ARM tablets.)

Whichever way Microsoft ultimately decides to go regarding Desktop App support on Windows 8 on ARM, no legacy Win32 apps are going to run without work on Windows 8 on ARM. From what I've heard, developers should expect there to be some amount of recompilation/rewriting for any and every "legacy" app to work on Windows 8 on ARM because the ARM instruction set is different from the Intel x86/x64 one.

The key question is exactly how much work will/might be required to get existing Windows apps to work on Windows 8 on ARM. And the answer to that varies, according to developers who are attempting to make educated guesses, given that Windows 8 ARM tablets aren't available to developers and testers (other than the select few affiliated with Microsoft and their OEMs, one would assume).

Ars Technica's Peter Bright blogged recently that recompiling existing legacy Windows apps to work on ARM "should be a relatively trivial affair" -- with a few caveats. From his December 5 post:

"While legacy x86 applications won't run on ARM, business applications written using .NET should run unmodified, and — as long as ARM Windows really is Windows, and contains all the things that regular Windows contains — recompiling existing applications to run on ARM should be a relatively trivial affair.

"Applications already ported to support 64-bit processors, a category that includes Microsoft's own Office, will be in a particularly strong position, as their code should already have been purged of any processor-dependent portions."

(For the record, we also don't know for certain whether Microsoft is planning to release Office for Windows 8 on ARM as a Desktop App or a Metro app. Microsoft's Office team also is attempting to maintain the shroud of secrecy as it moves toward delivering Office 2012. CEO Steve Ballmer did hint strongly in September that there could be a Metro-style version of Office coming, however. There also will be a version of Office 2012 that runs on existing x86-based Windows PCs, one would assume.)

A developer contact of mine, who asked to remain anonymous, echoed some of Bright's comments about the potential to move legacy .Net apps to Windows 8 on ARM with relatively little pain:

"If you're a .NET developer, and you stayed in the safe 'managed code' walled garden of .NET, then in theory, you wouldn't have any native code that would bust with ARM under the hood. In fact, Visual Studio has a compile option named 'ANY CPU. Will different flavors of ARM show up there in VS2012? My guess is that they will if you wanted to target ARM and not X86 (not that it makes any sense). However -- and this is key -- there are ways to break out of that safe garden since .NET interops with older code. So I would be careful to imply ALL .Net apps are the same because there is always somebody doing something special. Obviously if programmers use X86 extensions in C++, like the SSE family that Intel pushed during the last few decades, then ARM is going to be painful if there is no equivalent set."

This developer noted that programmers still don't know what the internal architecture of Windows on ARM looks like. Will there be a subset of Win32  -- at least the .Net Common Language Runtime -- in Windows 8 on ARM?

The architecture of Windows 8 on x86/x64 looks like this (an adaptation of a Microsoft architectural diagram from Build, courtesy of Chief Technology Officer of Magenic and the creator of the CSLA .NET development framework Rockford Lhotka):

(click on diagram above to enlarge)

The green side is what the stack looks like for Metro-style apps; the blue is what the stack looks like for Desktop Apps (non-Metro-style apps that aren't optimized for touch).

I haven't done an official tally as to all the feedback I've gotten on Twitter and e-mail as to whether Microsoft should or shouldn't ax the Desktop App environment on Windows on ARM, but I'd say it's running roughly 50/50. Many of those against the move said that the inclusion of an option for non-Metro apps is what will help differentiate Windows 8 from other tablet operating systems.

Any developers have any more to add as to how difficult/easy you're expecting it to be to move existing Windows apps to Windows 8 on ARM -- and whether you plan to do so, or are just counting on going Metro for Windows 8?

Editorial standards