The "real" browser war

We were finishing up our taping for the latest episode of Plumbers At Work, and the issue of IE7 (just recently released) vs. Firefox came up. The first thing that came out was of course the “browser wars” statement and that it’s still going on. Actually, I have  bit of a different take on what the war actually is and who’s winning.

Let’s face it. A web browser is neither rocket nor science. It sends a request to an address via a protocol, chatter goes on back and forth, and the end result is a stream of ASCII character that are rendered in a format. That’s it. Sure, there are ActiveX controls and Flash and JavaScript and all that goo, but really we’re just talking about parsing and displaying here. So there’s really not a heck of a lot you can improve on with that model. I mean, other than following some standard about what an HTML tag looks like (to which I use the term “standard” loosely as nobody can really agree on this), there’s not really a way to build a better mouse trap here. The operations are so very basic in structure and the pattern is the same whether you have a cool looking mammal as your mascot or not.

So what’s the war really about? Market share? Nah. That’s just attrition. Microsoft has a Googolplex (no, not Googleplex) of deployed systems out there and every one of the them ships with this thing called Internet Explorer. It’s the default browser, and other than you, me, and a few thousand of us geek boys (and girls) the average 40 year old virgin who plugs in his latest acquisition from Best Buy doesn't know there are other choices. Certainly when you boot up XP you don’t get a “Would you like to use Internet Explorer as your web browser, or go surfing on the net to find another one?”. I know what my grandpappy would say (assuming I could even get him to use this new-fangled gadget called a computer). “Surf for something I already have? Poppycock.”

The masses out there with their out-of-the-box-stock Dell PC have no clue how to find things on the net, let alone install an application that they download. Yes, there are internet and computer savvy people, and those that use computers in their daily lives (whether they like it or not) but the vast majority just doesn’t know there are choices. Or where to find them. Or how to use them. So you really can’t ask Firefox, Opera, or Bob’s Budget Web Browser to try to take the lions share of these peoples lives with something that isn’t any different on the surface to them. A browser is a browser is a browser. If it ain’t broke, don’t fix it they’ll tell you.

I think the true war (if there is even one) is the functionality the application provides. Like I said, it doesn’t take a computer scientist to write code to stream down a bunch of bytes from a connection and display it in a format most people agree on. What really makes the shell of the application we call a web browser useful is in the extensibility it provides. For guys like us. The geeks. The ones that build things to make other peoples lives better.

I’ve looked at both sides of the coin and Firefox is the clear winner here. Just starting to look at how to build a tool bar button for IE takes you into dozens of registry hives, GUIDs, class IDs, etc. and that’s not even getting to the point where  you have to build a COM object and optionally some scripts to make this actually thing do anything. And that’s just a button. Imagine anything more than that? There’s also menu bars, and explorer bars, and custom download managers, and each one of them requires at least this much (if not more) investment in learning. There’s lots of documentation on IE and building extensions so you can start in the MSDN library like here, however it falls short and for the guy who wants to build something useful for someone and it becomes too much of an investment in time. I don’t want to read an entire manual on Plumbing just to stop a dripping tap, but that’s what IE extensions feel like.

Then I took a look at Firefox and how to build their extensions. It was well documented and had a great page to get started here (with a download of the Hello World extension if you just wanted to skip to the good part). I found that to be pretty straight forward and simple. A single page describing what I had to do and an example I could follow and download. IE on the other hand? 12 or so pages of topics, with dozens of links to all kinds of snippets and the documentation overall was less than stellar. For example, to add an entry to the standard context menu there’s a few instructions (again registry changes) but when you read it, it refers to things like scripts and assemblies as if I know where that came from. So where are those and how do I build them (or deploy them, or pass values to them, etc.). Like I said, pretty skimpy. Firefox extensions use standards like JavaScript and CSS and binds it together with a simple text file (a manifest). Einstien said “Everything should be made as simple as possible, but not simpler”. Easy ways that everyone knows about to get things done. Standards good, screwing around in the registry… bad. Some naysayers will claim “Well COM is a standard too you know” and of course those guys could just rattle off COM interfaces in their sleep. Uhhh, yeah. Okay. Grant you, to setup the development environment to write a Firefox extension requires a bit of work. On the IE side, everything is there if you have Visual Studio already installed. So I’ll hand it to IE for that, however this is something that is either a) automated or b) only done once. So really does it matter in the grand scheme of things?

Finally after your built your uber-widget, there’s deployment. Write an MSI and package up COM stuff, write some custom code to create all those registry entries (or perhaps if your installer supports it, add them yourself or run a .reg file) however none of this is very safe and almost any IE add-in I’ve installed required me to reboot the computer. Yeah, you heard me. The computer. The big box that makes things go. Not the browser, but the entire operating system. Has to do with that wonderful “COM” thing that IE needs. If we could build native .NET addins by creating oh, say, a single .NET assembly and xcopy deploy it to a folder that would be a step forward and what I would consider a real improvement to IE. Or even let the user download it and maybe create a bootstrapper to install it for you via the browser. I mean, if we’re going to compare apples to apples here and Firefox to IE, then why can’t IE deploy extensions like Firefox does? I go to the Firefox addon site, see something new like a CSS validator, or an addon that lets me download videos I’m watching in my browser, and I click on “Install Now” and poof, Bob’s yer uncle (okay, sometimes you *do* have to restart the browser). What’s preventing us from doing this in IE with IE extensions?

Oh yeah. COM. Registry access. Goo. Got it.

I look at the Firefox addon site. There are tons-o-addons. True, you might filter out 60 or 70% of them and call them crap but then there’s some real gems there. Useful things that make people productive while browsing web pages, which is all the web browser does. If I can be more productive like being able to snag news clippings or validate my CSS on a page (without having to launch other tools/windows) then more time for me to play Xbox games (or whatever it is you’d rather be doing).

So this is my take on the real browser war. It’s in the extensions and not the snazzy features you might add to the base system. C’mon. Tabbed browsing? If that’s really got you picking one tool over another, you might want to re-evaluate your priorities. I look at the “new” features of IE7. Tabbed browsing; RSS feeds; better performance; blah; blah; blah. Nothing exciting here, move along folks. If IE (Microsoft) built up a community of addons like Firefox has, you’d see a real battle going on. Instead we have an underdog that’s superior in some ways with a lot of potential, and the front runner that is not enabling people to be more productive but rather adding flash and flair to something that really can’t be improved upon, retrieving and rendering content. Communities are not Sea Monkeys and don’t grow up instantly. There’s no Field of Dreams approach you can take here. However if you give them the tools, the can build it for you. Just look at what Firefox Addons site has done for Firefox. True, the browser might be a little leaner than IE (or others) but the sweet spot is the aftermarket and what’s happening right now everyday.

What’s really the golden ticket is the stuff beneath the layers. You know, like an onion. Peel back IE and you get Goo. Peel back Firefox you get a world of possibilities that’s expanding every day.

2 Comments

  • Actually, the reason you have to reboot is because IE is loaded into explorer (regular explorer, not just internet explorer). Technically, a logoff and logon should be enough.

    And most of the COM stuff is handled automatically by ATL. Though IE does require a few extra registry settings to link it all up.

    I certainly agree that extension development seems much simpler in Firefox than in IE, but I'm wary of the idea that I can just click a link and download something that "automatically" hooks itself into my browser. Sounds a lot like something malware authors would really enjoy.

  • Yup. It's the addons.

    Too bad IE was so far behind, they're still playing catchup. Thing is, I don't think they will ever catch up. Simplifying the IE addon model is so far from fruition, it's just not going to happen. They're still fixing CSS bugs, for cripes sake.

Comments have been disabled for this content.