Original URL: https://www.theregister.com/2013/11/14/microsoft_surface_rt_stockpile/

How to relieve Microsoft's Surface RT piles problem

Burning problem for millions... oh where is that cooling cream of a Win32 API?

By Liam Proven

Posted in Personal Tech, 14th November 2013 10:03 GMT

Somewhere in Redmond (at least metaphorically speaking) are several very large piles of unsold Surface RT tablet components.

Why did the long-awaited and much-hyped ARM tablet running "Windows for ARM" Windows RT flop so badly, when ARM tablets running iOS for ARM from Apple are doing so well?

It's not just the Modern Windows - or Metro - interface. Yes, everyone hates it on desktop Windows (although we're all going to have to get used to it, for reasons I'll come back to in my next article). But on phones, it's actually quite well liked. Some customers even like Surface.

Everyone LOVES a tiled interface... on a smartphone

But Windows RT (which you can't call WinRT, which is - in typical Microsoft branding style - are confusingly different but related things) is not "Windows Phone 8 for tablets". It's not even compatible with Windows Phone apps - even though it's based on the same Windows NT kernel as Windows Phone 8.

The only operating system Surface will run is, yes, Windows RT, which is essentially Windows 8 for ARM – but a version of Windows 8 with much of its functionality disabled. Most desktop users dislike Windows 8's Start screen and its "Modern apps" – but on Windows RT, Modern apps are all you're allowed. Windows RT does have a desktop, but it's locked down - only Microsoft's browser Internet Explorer version 11 and the bundled version of Office RT (a version of Office Home and Student 2013) - can use it.

Similarly, Windows RT is entirely compatible with the standard Win32 API - so long as the app has been compiled for ARM, of course - but developers aren't allowed to use it. The marketdroids commanded that it be disabled. You're only allowed to install signed apps from the Windows Store.

It's possible to run standard Win 32 apps on a Surface RT that's been jailbroken. You can re-enable Win32 and then install and run a small assortment of FOSS desktop Windows apps that have been recompiled for ARM. But it's a hack, likely to disappear in future and it will probably go down about as well with resellers as rooting your smartphone.

Windows RT and Windows Phone... so close and yet so far

Something else Windows RT won't do is run Windows Phone apps, even though they're designed for an interface that looks just like Windows 8's Modern UI. Windows Phone 8 is a different branch of the family, more limited still than Windows RT, with severe compatibility restrictions.

Windows RT apps won't run on Windows Phone or vice versa: they must be ported. Allegedly, Microsoft itself estimates only 70 to 80 per cent of code reuse.

And remember that mention of "the only operating system Surface will run"? That's a deliberate restriction, too. To get the case sticker (and marketing money) that says that their devices are compatible with Windows 8, PC manufacturers must use UEFI firmware instead of a legacy BIOS. A stipulation of this is SecureBoot, which means the firmware won't boot any code that isn't signed by Microsoft.

On x86 machines, you can turn off Secure Boot if you want to install Linux or some other operating system on your computer. But on ARM-powered Windows computers, you can't turn off SecureBoot, so no other operating system can be installed. No Ubuntu Mobile or Android (or WebOS, Tizen or Sailfish) for you.

A hurdle created by marketdroids

So: you're not allowed to run Win32 apps, although the operating system can do this without a problem. You're not allowed to run desktop apps, unless they're the ones Microsoft gives you. And you're not allowed to install any other OS. It is these three factors that doomed Surface and Windows RT.

All these things are options, as is demonstrated by the jailbreaks. This means the three RT slab killers were marketing decisions, not technical restrictions. But between them, they mean buying an x86-powered tablet - a Microsoft Surface Pro or something else - is a much more attractive option. On the x86 version of Windows 8, you can run whatever apps you want, just like always - you can even remove the OS and replace it with your own choice of operating system if you want.

All three of these annoying obstacles could be removed quite easily.

The factor that led Microsoft to these disastrous decisions was the same one that decided we couldn't shorten the name of Windows RT to WinRT. WinRT is a bundle of different technologies - an object model based on COM+ and .NET, its associated C# and VB.NET languages, plus Javascript and TypeScript (Microsoft's strongly typed extension to Javascript) and Microsoft's native-code C++ compiler as well as the .NET languages. The resulting programs are called "Windows Store apps" - Modern apps for the Start screen, in other words, or The Interface Formerly Known As Metro.

Windows RT is a attempt to usher in its planned future for Windows of being multi-touch as well as keyboard and mouse driven, with managed apps, curated and approved by Microsoft, built with Microsoft tools and only obtainable from the Windows Store - with a cut of the price going to Microsoft, of course.

Since by its nature, an ARM version of Windows cannot run ordinary x86 Windows apps (see Bootnote*), why not just banish Win32 and the desktop altogether?

The problem is, of course, that it's a step too far, too soon. All the apps that make Windows desirable are Win32 apps. At this early stage, most Modern apps are barely functional toys, justifiably despised by most Windows 8 users. And whereas Windows Phone apps are a little more mature, Windows RT can't run them; they are built using different tools and sold from a different official store.

But it's not too late. Microsoft could transform Surface and Windows RT if it wanted: it holds the keys. Re-enable Windows RT's Win32 API, enable the installation of third-party apps, and unlock the firmware so users choose their own operating system.

Surface and other Windows RT devices would suddenly become much more flexible, powerful and appealing. But that would destroy Windows RT's function as a bridge into the new, pure, clean, Microsoft-controlled world of managed code and a managed market. That might be a step further than the company is willing to take. ®

* Bootnote

Yes, there are emulators to execute x86 code on ARM. Windows NT used to include one, when it was new and ran on multiple RISC chips, it came with an emulator to run 16-bit x86 code on DEC Alpha, MIPS, PowerPC and SPARC. The snag is that ARM chips are slower than modern x86-32 ones, and ARM is only just moving to 64-bit now, so x86-64 code is a bit of a stretch for them. In other words, this isn't really a viable option - it will deliver poor performance at best.