Mozilla, Google voice concern over Windows 8 browser restrictions

Both Mozilla and Google have expressed concern over Windows 8. Microsoft’s next big operating system release restricts access to certain APIs and technologies browsers need – only making them available to Internet Explorer. Looking at the facts, it would seem Mozilla and Google have a solid case – coincidentally, the responses on the web are proof of the slippery slope we’re on regarding ownership over our own machines.

It’s important to make a distinction between Windows 8 on ARM (Windows RT) and regular Windows. Mike Pall, developer of, among other things, a just-in-time compiler for Lua, explains what, exactly, browser developers do not have access to on Windows 8 on ARM. First, it’s important to know that even though Windows RT ships with the Win32 APIs installed, only Microsoft can access them – which it does for Office 15 and Internet Explorer. Third party developer do not have access to Win32; they can only access the WinRT APIs.

The WinRT API does not offer the equivalent of VirtualAlloc() or VirtualProtect() with the ability to make code executable at runtime. But JIT compilers absolutely require this functionality, which means there’ll be NO INDEPENDENT JIT COMPILERS for W8ARM!” Pall explains, “The Internet Explorer process on W8ARM has special privileges and is the only one allowed to run a JIT compiler to speed up JavaScript. No other browser will be able to compete on performance with IE on W8ARM. That sure simplifies keeping up with the competition…”

“Actually, fully-functional browsers need access to a couple more APIs that is denied to them, too. But the inability to run a JIT compiler has consequences for a much wider range of software,” he adds, “For W8ARM there’ll be no LuaJIT (in JIT mode), no PyPy, no Java, no v8, just to name a few. Ditto for any software that relies on them (Scala, Clojure, JRuby) or embeds them.”

These same restrictions apply to Windows 8 on x86, but only for Marketplace applications. Contrary to Windows 8 on ARM, you can still install your own desktop applications on Windows 8 x86, including a special class of applications which combine the Win32 API with WinRT. In any case, it’s pretty obvious the desktop is legacy, so it’ll eventually be phased out.

These are some pretty hefty limitations, and considering Internet Explorer on Windows 8 doesn’t have to respect these limitations, it’s clear it will have a considerable advantage over possible competing solutions. Rightfully so, Mozilla and Google are not particularly happy about this.

“The prospect that the next generation of Windows on ARM devices would limit users to one browser is untenable and represents a first step toward a new platform lock-in,” writes Harvey Anderson, Mozilla general counsel.

Asa Dotzler further adds that this goess well beyond tablets alone. “ARM will be migrating to laptop PCs and all-in-one PCs very quickly. If you read Microsoft’s blog posts about Windows on ARM, you’ll see that they expect ARM PCs to cover the whole spectrum. ARM chips are already being used in servers. This is not a tablet-only concern,” he argues.

I agree with Dotzler – heck, the one reason I’m excited about Windows on ARM is that it will finally be interesting for big OEMs to start shipping laptops and desktops with ARM chips in them. Considering I don’t give a rat’s bum about gaming or things like photo or video editing, I’d love a super-small, silent, and frugal ARM box which I can tape to the back of my monitor, running Windows (yes, I prefer Windows over Linux and Mac OS X – sue me).

However, I’m not particularly enamoured with Internet Explorer as it exists on the preview versions of Windows 8 (for various reasons I won’t go into), and I’d love for, say, Google to make a WebKit Metro browser I actually like. The current limitations make that entirely impossible, which sucks.

Speaking of Google, it, too, has raised concerns over the browser situation on Windows 8. “We share the concerns Mozilla has raised regarding the Windows 8 environment restricting user choice and innovation,” the company told Cnet, “We’ve always welcomed innovation in the browser space across all platforms and strongly believe that having great competitors makes us all work harder. In the end, consumers and developers benefit the most from robust competition.”

Most responses online have focussed on the fact that Windows RT is supposed to focus on tablets (which isn’t true, as Dotzler pointed out, but alas), and as such, the situation isn’t much different from iOS. As a geek, this line of reasoning saddens me greatly – it confirms just how out of touch the industry has become with its roots. It’s the slippery slope many warned about: now that iOS is successful, we’ve already accepted that we no longer get to decide what code we get to run on our own devices, so much so that even Microsoft can get away with limiting us in this fashion. Mac OS X is moving in the same direction.

I’m quite young (born in 1984, ironically enough), but even I learned about computers the hard way – by messing stuff up. By breaking stuff. By stepping outside of the boundaries set by my parents and school regarding computer use. By age 6 or 7 I was hooked enough to start dabbling with BASIC – which wouldn’t be possible in a Metro and iOS world. This is something that honestly and truly has me worried, because 10-20 years from now, we’re still going to need great programmers, and if all they know are the nanny states of Metro and iOS, we’re going to be in for a nasty surprise.

Let me be very harsh and make it very clear: I’m not talking about people who write a bunch of iOS applications and call it a day. I’m talking about the nitty gritty stuff. Driver development. Assembly programming. Kernel development. Firmware stuff.

Let me extend an olive branch for once and assume that Microsoft and Apple are doing this for entirely altruistic reasons – under that assumption, this is a well-intentioned but entirely dangerous development that we shouldn’t cheer on, but be weary of. It’d be such a huge step in the right direction if they were to, I don’t know, commit to implementing a sideloading switch for the foreseeable future.

All in all, this is a major issue, and I don’t buy into the whole “it has no keyboard so it shouldn’t be your device”-nonsense. If it takes the government or the justice system to step in and resolve this, then, well… So be it.

90 Comments

  1. 2012-05-10 6:28 pm
    • 2012-05-10 6:37 pm
      • 2012-05-10 8:19 pm
        • 2012-05-10 8:27 pm
        • 2012-05-11 12:33 am
          • 2012-05-11 2:17 am
          • 2012-05-11 6:28 am
          • 2012-05-12 7:18 am
          • 2012-05-12 2:29 pm
          • 2012-05-12 8:14 pm
          • 2012-05-12 8:28 pm
          • 2012-05-13 12:15 am
          • 2012-05-14 10:39 am
          • 2012-05-17 11:49 pm
    • 2012-05-10 6:37 pm
      • 2012-05-10 6:51 pm
        • 2012-05-10 6:57 pm
        • 2012-05-10 9:43 pm
          • 2012-05-10 10:01 pm
          • 2012-05-10 10:57 pm
          • 2012-05-10 11:13 pm
          • 2012-05-11 4:08 am
          • 2012-05-11 1:13 pm
          • 2012-05-12 7:42 am
          • 2012-05-10 11:37 pm
          • 2012-05-11 10:27 am
          • 2012-05-11 10:29 am
        • 2012-05-11 12:00 am
        • 2012-05-11 5:14 am
          • 2012-05-11 5:59 am
          • 2012-05-17 11:57 pm
        • 2012-05-11 2:42 pm
    • 2012-05-10 7:03 pm
    • 2012-05-10 7:10 pm
      • 2012-05-10 7:23 pm
        • 2012-05-10 7:25 pm
        • 2012-05-10 7:28 pm
          • 2012-05-10 7:50 pm
      • 2012-05-10 7:23 pm
        • 2012-05-11 5:34 am
          • 2012-05-17 11:42 pm
      • 2012-05-10 7:30 pm
    • 2012-05-10 7:29 pm
    • 2012-05-10 8:10 pm
      • 2012-05-10 8:15 pm
        • 2012-05-10 10:19 pm
          • 2012-05-10 11:41 pm
      • 2012-05-10 8:21 pm
        • 2012-05-10 10:23 pm
    • 2012-05-10 8:39 pm
    • 2012-05-11 7:14 am
    • 2012-05-11 8:48 am
  2. 2012-05-10 6:53 pm
    • 2012-05-10 9:47 pm
  3. 2012-05-10 7:55 pm
    • 2012-05-10 9:13 pm
      • 2012-05-10 11:18 pm
  4. 2012-05-10 9:08 pm
    • 2012-05-11 2:31 am
  5. 2012-05-10 11:59 pm
    • 2012-05-11 7:52 am
    • 2012-05-11 6:53 pm
  6. 2012-05-11 2:15 am
    • 2012-05-11 5:04 am
      • 2012-05-11 6:47 am
        • 2012-05-12 12:38 am
  7. 2012-05-11 2:22 am
    • 2012-05-11 2:46 am
      • 2012-05-11 4:33 am
    • 2012-05-12 5:28 am
    • 2012-05-12 9:11 am
  8. 2012-05-11 6:39 am
  9. 2012-05-11 9:58 am
  10. 2012-05-11 2:40 pm
    • 2012-05-11 2:44 pm
      • 2012-05-12 8:55 am
        • 2012-05-12 1:16 pm
    • 2012-05-12 7:49 am
  11. 2012-05-11 2:50 pm
    • 2012-05-11 3:12 pm
    • 2012-05-11 6:35 pm
  12. 2012-05-11 5:59 pm
  13. 2012-05-11 6:22 pm
    • 2012-05-12 5:32 am
  14. 2012-05-11 7:06 pm
  15. 2012-05-12 1:41 pm
    • 2012-05-12 4:49 pm
  16. 2012-05-13 8:38 am
  17. 2012-05-14 10:12 pm
  18. 2012-05-15 7:42 am