Third party developers face a problem when it comes to Windows 8 on ARM (WOA). The "MetroTop" - part Metro part desktop apps that run on any ARM-based Windows 8 device rely on an API that is available only to Microsoft. Is this deliberate policy and can it be tolerated?
Back in the early days of Windows it was the case that Microsoft gained and advantage over other programmers by making use of internal APIs. Given the size and complexity of an operating system it seems reasonable that there should be undocumented systems, or rather systems that are not publicly documented. However, it is a very different matter if those undocumented APIs suddenly start being used by the Microsoft application developers. When this happens it is clear that the playing field is far from level.
Back in 2000 Microsoft faced an anti-trust case because of its practice of bundling Internet Explorer with Windows. This was said to disadvantage the competing browsers such as Netscape Navigator and Opera. There was also the accusation that Microsoft was using secret APIs to give Internet Explorer an edge over the rest. Microsoft disputed that it was using secret APIs, but nevertheless they were ordered to separate Windows and Internet Explorer and to make the APIs public. The monitoring of Microsoft's behaviour was extended twice but finally came to an end in May of last year (2011). It is argued that this won't make much difference because of the precedent and because Microsoft doesn't want to go though the experience a second time.
But consider the situation with Windows 8 for a moment and things don't seem quite so simple.
First it is important to know that Windows 8 is like two operating systems spliced together at the Start menu. Windows 8 desktop is like Windows 7 and not much has changed.
Windows 8 WinRT/Metro is new and it is the part of the system that is targeting touch platforms. You can create a Windows 8 desktop app using the well-known Win32 API or a WinRT/Metro app using the new API. As long as the hardware you are running things on is x86/64 then everything works. Even on a tablet, as long as it uses an Intel processor, then you get the whole system Desktop and Metro.
The problems start when the hardware is based on an ARM processor - and you can expect most Windows 8 tablets to be based on ARM processors and all Windows Phone 8 systems are going to be ARM-based.
Windows On Arm, or WOA, is different from Windows on x86 in that the traditional Desktop/Win32 environment will not be available - only WinRT/Metro apps will run on WOA and hence on most tablets and phones.
If this is where the story ended there would be no problem. There would be some disappointment that WOA didn't run desktop apps but everything would be simple and on ARM machines Windows 8 would be WinRT/Metro only.
However Microsoft is planning to make a selection of desktop apps available including IE10. These apps will use APIs not available to standard WinRT/Metro apps. Which Win32 API calls are available isn't being made clear and in this sense it is a very non-public API.
Back in the anti-trust days Microsoft denied using secret APIs but now, just a few months after the supervision has ended we have Microsoft making public that its own ARM apps are using secret APIs that aren't available to the rest of us.
Microsoft is also creating Metro apps that run at a different privilege level and can do things that standard Metro style apps can't. For example, Metro IE10 runs at a higher privilege level - the same level that a desktop app runs at - making it a sort of "MetroTop" app.
So when Mozilla, Google and Opera come to port their browsers to WOA they will be disadvantaged because they can only create pure Metro style apps.
Mozilla is already speculating on how to create a more full-functioned browser that can go head to head with Metro IE10 and it is also clear that Microsoft isn't providing any clues.
However, the same argument applies not only to browsers but to all of the other apps that Microsoft might make available in MetroTop form or as WOA desktop apps. For example, will LibreOffice be given details of the secret APIs to port its office suite to compete with Microsoft Office on WOA? And what about the rest of us?
It is bad enough that Microsoft is going to play the role of gatekeeper when it comes to WOA applications - as all WinRT apps have to be installed from the Windows 8 market place - but to keep a whole section of that market for themselves is plain wrong.
There could well be technical reasons why Microsoft isn't keen on allowing the details of the MetroTop or Win32 API out into the wide world. It might well be that converting the Win32 API to ARM is very messy and best kept hidden, but to use it internally and deny others access is a return to the ways of the evil empire, even if unintentionally.