Recently in Internet Technologies & Products Category

Today is the 10 year anniversary of the release of Mozilla 1.0. It's also my birthday. Coincidence? :D

It's Been 12 Years


Today is my 12 year anniversary as a full-time Mozillian. I started contributing about a year and a half before that, but it wasn't until May 29th, 2000 that Mozilla became my full-time, paying work. The announcement went out two days later.

When I joined Mozilla, as a member of, I was going to continue my efforts around mobilizing our army of Mozilla testers. Very soon after I got started full-time, Brendan Eich drafted me into the newly created project management team, and I spent the bulk of the next two years helping to define and ship Mozilla 1.0. From there it was on to Firefox project management, community marketing, tech evangelism, some work around anti-trust in the EU, developer communications, various other things that needed doing, and most recently Firefox product management.

Mozilla is my dream job. Thank you to Mitchell Baker for bringing me on way back when and thank you to everyone else at Mozilla that's made this such a great ride.

I've read a number of people trying to argue that tablets are not the same as PCs and that Microsoft gets to change the rules and drop their public commitments to developers (and governments) on tablets because they're a totally different category. Well, let's take a look at what Microsoft has to say about that:

Imagine a tablet. Light and thin. Amazing battery life. Gorgeous screen. You can lounge on the couch enjoying a beautiful, fluid experience, doing the things you love to do on a tablet: playing games, socializing, browsing the web, reading, touching up photos, watching TV. You are just immersed in your experience, doing the things you love to do. You hand it to your daughter and she knows exactly how to use it.

But then, if you want to have a bit more control and efficiency, you can set this same tablet in a stand and attach a keyboard, or just flip a keyboard around, and suddenly you have a complete Windows desktop experience, with full Microsoft Office, multiple monitors, peripherals, and a mouse.

Or, imagine a featherweight laptop with a beautiful large screen and a great keyboard. But in addition to doing everything you use your laptop for today, you can also use your favorite new apps built for today's tablets.

Windows 8 imagines the convergence of two kinds of devices: a laptop and a tablet. Instead of carrying around three devices (a phone, a tablet, and a laptop) you carry around just a phone and a Windows PC. A PC that is the best tablet or laptop you have ever used, but with the capabilities of the familiar Windows desktop if you need it. You may choose to carry a tablet, or you may choose a laptop/convertible, but you do not need to carry around both along with your phone. You never think about a choice, or fret over your choice of what to carry. Things just work without compromise.

It's kind of difficult to argue that tablets are something distinct from laptops (and the waning desktop) to defend Microsoft's anti competition behaviors around Windows on ARM tablets (and soon ARM convertibles and straight up laptops) when even Microsoft is telling you that they're the same thing.

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 from the last couple of decades of Windows operating systems. Metro and the WinRT APIs 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 lack the kind of 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 capable 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 here, Internet Explorer 10 on Metro has special access to some very powerful APIs from over in Win32 land. Those APIs allow for IE to have modern capabilities like 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, *unusably* slow.

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? Cheating works in this case, doesn't it? So what's the problem there?

There's no problem for Windows 8 on Intel chips, where Microsoft lets other browsers do the same thing IE is doing. The problem is with Windows for ARM processors. Browsers on Windows for ARM chips do not get to do what IE is doing. Microsoft is giving its own Internet Explorer special privileges that no other Metro app, including other Metro browsers, are allowed.

If we built Firefox for Windows ARM 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. No sane user would want to surf today's web and use today's modern websites with that kind of crippled browser.

Microsoft can solve this problem for Windows on ARM the exact same way they solved it for Windows on Intel. They can give third party browsers the same access they give Internet Explorer. This access is described by Microsoft in the whitepaper "Developing a Metro style enabled Desktop Browser" and it should apply to all of Windows regardless of the processor that Windows is running on. Not doing so ensures there will be no serious browser choice and competition for lots of Windows users and that's inconsistent with Microsoft's public commitments and legal responsibilities.

This week's Windows Weekly broadcast spends about 20 minutes (from 2:00 to just past 20:00) on the topic of Microsoft banning competing browsers from Windows on ARM.

Paul and Mary Joe do a really good job of explaining things. The one thing I'd like to highlight, and Paul touches on this, is that were talking about more than just IE on the classic desktop on Windows on ARM. We're also talking about being disadvantaged in the Metro environment. That's actually the larger of the two issues.

Internet Explorer is basically one browser with two front ends. The back-end is basically the same in classic and Metro and it has access to special Windows APIs that no other app on Metro has access to. That means that this is not just a problem of other browsers being excluded from the classic desktop on Windows on ARM, but other browsers are also at an extreme disadvantage on Metro compared to IE.

IE on Metro has access to the full win32 API, unlike any other Metro style app -- including third party browsers. Without that access, it's simply impossible for other browsers to compete with IE on Metro. No other browser would be able to have a modern JavaScript engine -- Microsoft's JavaScript engine would be 10-30 times faster than any other browser's because IE has privileges on Metro that let it mark memory as executable (something you need for a JIT to make JS fast). No other browser would be able to compete with IE in terms of stability and security because IE has access to APIs for creating extra processes and brokering between those processes so it can sandbox tabs and plug-ins and generally build a more secure product. No other browser on Metro would have access to those APIs.

So, when Paul and Mary Jo talk about how Microsoft could make things right with third parties by just not having classic desktop IE on Windows on ARM, yes, that would be a small step, but it's not the classic desktop environment we actually want. No one wants to spend time in that environment on a Windows on ARM machine. What we want, and what IE has, is access to the classic win32 APIs that power the classic desktop while in Metro mode.

On x86, we had the same exact problem. Firefox on Metro did not have access to the same APIs as IE on Metro. Microsoft solved the problem by creating a new category of Windows 8 program called Metro style enabled desktop browsers. But what Microsoft was really doing there was saying "Your Metro browser can use your classic browser's back-end, which has access to the full win32 API" which is precisely what IE was doing.

Microsoft should provide the same exception on Windows on ARM and allow browsers on Metro to access the full win32 API just like IE does.

update check out that awesome 2004 Firefox 1.0 New York Times poster behind Paul :-)

This Has Worked Well


"The U.S. antitrust ruling requires that Microsoft disclose all of the interfaces internal to Windows called by 'middleware' within the operating system, such as the browser, the media player, and so forth. In this way, competitors in these categories will know that they can plug into Windows to get the services in the same way that these built-in Windows features do. This has worked well, and Microsoft will continue to disclose these interfaces even after the U.S. antitrust ruling expires."

Let's start with these.

  1. Open Protocols. Microsoft commits that all the protocols in [Windows] that are used by any other Microsoft product will be made openly available to the developer community in a non-discriminatory fashion. These Open Protocols may include protocols that implement industry standards.

  2. Open APIs. Microsoft commits that all the APIs in [Windows] that are used by any other Microsoft product will be made openly available to the developer community in a non-discriminatory fashion. These Open APIs may include APIs that implement industry standards.

  3. Open Access. Microsoft will publish its documentation for these Open Protocols and Open APIs on its website so that all developers will have the benefit of this technical information in a manner that takes advantage of the nature of open discussion on the web. Microsoft will not require developers to obtain a license, or to pay a royalty or other fee, to have access to all this information....

via Microsoft Interoperability Principles

This is the single best article I've read all week on the topic. If you read this a couple of times, you will walk away with a better understanding of this issue than pretty much everyone you know, including many of the people writing about it.

Third Party Browsers Blocked on Windows 8 for ARM? by Kshitij Sobti

This is another really good article that helps to explain some of the "What about Apple? Aren't they doing the same thing?" questions I've been hearing.

Mozilla on new browser brouhaha: Microsoft, Apple different cases by Gregg Keizer

Software Development

Senate Judiciary Committee staffers plan to take a look at allegations that Microsoft has made it difficult for competing Web browsers to run on a certain version of Windows, an aide to Antitrust subcommittee Chairman Herb Kohl (D-Wis.) told The Hill Thursday.

That's an interesting development.

The New Bing is Nice

The new Bing is really nice. They caught up with Google on algorithmic search last year, IMO (at least in the US.) This update catches them up in "take direct action" department and pushes well ahead in the social integration area. I think that team really nailed it with social integration. Good for them.

Monthly Archives