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.
Microsoft is undoubtedly hindering third party apps by failing to provide a level playing field. However, Apple has been doing the same thing for ages and has been getting away with it. Sure, a lot of people believe that what Apple is doing is also immoral, but so far it hasn’t faced any sanctions or fines for being anticompetitive. The reason behind that is Apple isn’t a monopoly. When the iPhone was released it was a new entrant in a market with plenty of competition. Even now, the iPhone isn’t a monopoly. While the iPad managed to gain a huge lead in the tablet space, new devices like Amazon Fire have managed to sell quite well. Similarly, in the tablet space, Microsoft currently has no presence. Far from being a monopoly, Windows 8 for ARM is the underdog. As a result, no matter how unfair Microsoft’s restrictions for ARM devices are, they aren’t in any danger of being pulled up by the courts for it. However, there is another issue that might cause Microsoft serious pain.
On Windows 8 for x86, application developers are free to leverage both WinRT and Win32 APIs, and this is preciously what Google Chrome and Mozilla Firefox are going to do in their Metro editions. In fact, developers can eschew WinRT by sticking to a classic desktop app. Now, while Windows 8 Store will allow desktop apps, Microsoft had earlier stated that “Store policy and various runtime restrictions automatically exclude certain types of apps”. Does this mean that browser apps will be discarded? No one is quite sure yet. However, if it turns out that browsers like Firefox and Chrome can’t be submitted to the Store, then Mozilla and Google will have a potent weapon to attack Microsoft with. The Store is very tightly integrated with Windows 8, and will become the primary avenue for most users to install apps. Barring third party browsers from the Store of Windows 8 for desktop, which is a monopoly, might prompt regulators to take another long and hard look at Microsoft’s policies and practices.
The situation around third-party apps in Windows 8 is far from being clear. There are still quite a few unknowns at play. It will be interesting to see how serious Mozilla and Google are about pressurizing Microsoft. Somewhat surprisingly, when contacted, Opera refused to comment. Historically, they have been one of the most vociferous opponents of Microsoft’s practices. Back in 2010, they forced Microsoft to offer a ballot screen for browsers in Europe. My personal belief is that while Microsoft’s restrictions for ARM are unfair to third-party developers, there isn’t much they can do about it. However, if Windows 8 for desktop also restricts developers directly or indirectly, then Microsoft might land up in trouble.