As you must have heard by now, Mozilla is furious. The non-profit organization behind Firefox is angry because Microsoft is practically making it impossible to develop third party browsers for Windows 8 for ARM through artificially imposed restrictions. A short while back, even Google backed Mozilla and expressed its concern about Windows 8 restricting “user choice and innovation”. My colleague Paul Paliath has already weighed in on the debate. While he believes Mozilla’s complaint is baseless, I am not quite so sure.
Before proceeding any further, let’s delve a little deeper into the technicalities involved. With Windows 8, Microsoft is introducing an entirely new class of applications. These applications will run in Metro mode, and will be built using the WinRT API. The Windows applications that we are accustomed with are all built using the Win32 API. Now, Microsoft isn’t exactly killing the Win32 API. Windows 8 for x86 (desktops) will continue to offer a classic mode, which will be capable of running all Win32 applications. However, if an app wants to run in Metro mode it has to use the new WinRT API. The trouble is that in an attempt to make WinRT power efficient, fast, and secure Microsoft ended up making it way too restrictive. Due to this, several classes of modern applications can’t be developed by leveraging WinRT alone. In order to skirt around this significant roadblock, Microsoft created a third category of applications. This category of applications have a frontend developed using WinRT, but they can also leverage the power of the Win32 API. In other words, they look like Metro apps, but offer the power and flexibility of a traditional Windows app. Unfortunately, on ARM devices, the only apps which will be allowed to leverage both WinRT and Win32 APIs are apps from Microsoft. Paul is right in saying that Microsoft isn’t specifically targeting browsers. In one fell swoop Microsoft has put all third party apps at a significant disadvantage. Whether it be office suites, media players, or browsers – all apps will have a hard time matching products from the Redmond giant as they will practically be running on two different operating systems. To make matters worse, Windows 8 for ARM won’t allow third party apps to run as pure classic apps either. Asa Dotzler explained the trouble faced by browser developers quite succinctly.
Microsoft has made it clear that the third category won’t exist on Windows for ARM (unless you’re Microsoft) and that neither will the first category (unless you’re Microsoft.) That means that IE on ARM has access to win32 APIs — even when it’s running in Metro mode, but no other Metro browser has that same access. Without that access, no other browser has a prayer of being competitive with IE.
Mozilla has already issued thinly veiled threats of legal action, and considering that Windows 8 is pretty much done, the threat of another anti-trust ruling is the only thing that can realistically make Microsoft change its mind. However, is Microsoft really abusing its monopolistic position to crush competition? The answer is trickier than you might think.