Windows 8 running on ARM chips

Windows 8 Metro is a beautiful computing environment. Unfortunately, it's very limited when it comes to certain kinds of raw power that we're all used to in Windows 7 and earlier. Metro and the WinRT that power it are great for games and simple apps, and they provide developers with the tools to make those apps stunningly beautiful, but they lacks the kind power needed to drive sophisticated programs like Web browsers and office productivity applications.


Now, we know that Microsoft is shipping a powerful browser on Metro. Metro would be dead in the water without a really good Microsoft browser. So how does Internet Explorer 10 provide a beautiful and powerful experience in the Metro environment? It's easy. IE 10 cheats.


As you can see from the diagram above, Internet Explorer 10 on Metro has special access to the very powerful APIs from over in Win32 land. Those APIs allow for IE to have a Just In Time compiler (JIT). JITs make JavaScript really fast and without them, modern Web sites like Facebook, Twitter, and Gmail would be painfully slow for users.


So, IE 10 on Metro gets its good looks from the WinRT APIs but it gets critical pieces of its power from the Win32 APIs. That seems kind of smart, right? What's the problem there?


The problem is that no other Metro apps have access to those Win32 APIs except IE. Microsoft is giving its own Internet Explorer special priveleges that no other Metro app, incuding Metro browsers, are allowed.


If we built Firefox for Metro, we would not have access to those powerful Win32 APIs and so we would be at an extreme disadvantage when compared to IE 10 for Metro. We could build a beautiful Firefox that looked really nice on Metro, but Firefox would be so crippled in terms of power and speed that it's probably not worth it to even bother.


On Intel chips, Windows 8 is allowing other Web browsers like Firefox to have the same access to the Win32 APIs as Internet Explorer gets. It's kind of confusing how they do this. It requires users download and install that alternative browser in the Classic Desktop side of Windows 8. If you install an alternative browser like Firefox and you make that browser your default browser, it then gets to show up in Metro too. And when you're using it in Metro it gets access to the power of those win32 APIs that IE 10 gets. This is kind of an ugly solution because you can't get Firefox from the Windows Store like all of your other apps, and if you like Firefox enough to install it but you don't make it the default then it doesn't get to run in Metro at all.


On ARM chips, Windows 8 isn't allowing other Web browsers to use that method and so there's no way for any browser but IE 10 to run well on Metro. Any other browser would be really slow and users would rightly reject them.


Microsoft can solve this problem by making the same exception for browsers running on Windows 8 for ARM chips as they have for Windows 8 on Intel chips. If they don't do something like that, they are effectively blocking browser competition on Windows and that's something they've said over and over that they would not do.

0 faves
Uploaded on May 14, 2012