WebKit inside Internet Explorer? No thanks

webkit Inside every web browser is something called a rendering engine. The browsers get most of the glory, but it’s actually the rendering engines that do the heavy lifting. Firefox uses Gecko, Opera uses Presto, Chrome and Safari use WebKit, and Internet Explorer uses Trident. There are a few others as well, but those are the main ones. Gecko and WebKit are open source, Presto and Trident are proprietary.

Much was made of the fact that Google decided to use WebKit inside Chrome instead of building yet another rendering engine. I agree that it was the right move. Should Microsoft follow suit and replace Trident with WebKit? Steve Ballmer made some interesting comments today on the topic:

"There will still be a lot of proprietary innovation in the browser itself so we may need to have a rendering service," Ballmer said, adding, "Open source is interesting. Apple has embraced Webkit and we may look at that, but we will continue to build extensions for IE 8."

That prompted more than a few people to wish for Ballmer’s comments to come true, including Steve Hodson who said:

This idea of IE switching over to using the WebKit engine is interesting on a couple levels. First this would put two main browsers on an equal footing as far as rendering ability which would make for a much easier development cycle. It would also make for a better browsing experience for the users as developers would no longer be forced to program against the vagaries of IE.

I hear that last point all the time and it drives me nuts. Yes, Internet Explorer 6 was a nightmare to code for. But that’s simply not the case for Internet Explorer 7 or the recent Internet Explorer 8 beta. At least not in my experience.

I’d hate to see Microsoft adopt WebKit, for a few reasons:

  • Competition is good, and WebKit needs worthy competitors to continue to push the boundaries.
  • There’s nothing wrong with Trident. Why throw away something that works well and is continually improving? And I’m not just talking about the version of Trident in IE8. Microsoft has had full support for things like contentEditable since IE6, something Mozilla/Gecko still hasn’t gotten right.
  • It’s not like the existing versions of Internet Explorer would magically disappear! This would be yet another browser/rendering engine combo that developers would need to test against.

And there are good reasons that Microsoft won’t adopt WebKit too, not the least of which is licensing. Backwards compatibility is a concern also.

It might sound appealing at first, but I don’t think it would be a good thing if all the major browsers used the same rendering engine.

  • http://bjorn.tipling.com Bjorn Tipling

    Uhhh do you actually make websites? IE7 is a nightmare. It still has that hasLayout magic crap, the z-order indexing is a nightmare, trailing commas in JavaScript break everything, you can’t dynamically add options to select elements you have to replace the entire select, height issues, positioning issues, float issues, pickaboo bugs, etc etc.

    So yeah. IE7 is a problem.

  • http://blog.mastermaq.ca Mack D. Male

    Hi Bjorn, yes I do make websites, all the time! But like I said, in my experience, there aren’t that many issues. I typically start out by writing HTML and CSS that renders correctly in Opera. I then make any adjustments for the other browsers. Lately, I find I have more issues with Firefox 3 than with IE7. If you’re writing standards compliant code, IE7 does just fine.

    Now you’re right that there are still issues, and I’m not denying that, but it’s nothing like IE6.

  • Timo

    Licensing shouldn’t be an issue. Webkit is licensed under the LGPL, which means they can include it without problems. Apple is already including the binaries without issues.

    Using it wouldn’t decrease competition much, as they’d still be competing to have the best browsing experience, and the best renderer (ie the most up to date version of webkit), and because they are so far behind right now. Besides, there are still two other perfectly good competitors, both of which are moving at a faster pace than IE/Trident. With Gecko being open source, it isn’t going to slow down just because they have one fewer bad competitor. I would be much more concerned about competition if Firefox and Opera switched to webkit as well.

    Yes, IE 6 and 7 will continue to be an issue for quite a while to come, but that isn’t a reason for or against this move. The question is, will they manage to keep trident up to the standard of webkit and gecko on their own.

  • http://blog.mastermaq.ca Mack D. Male

    Thanks for the comment Timo. I meant licensing from Microsoft’s point of view. I assume they’d have to put in some code for the backwards compatiblity issue that wouldn’t be open source.

    I agree, the question is whether they can keep improving Trident and keep it up-to-dat. I think they can.

  • http://blog.doru.homeunix.org Doru

    It would be very interesting if m$ would opensource Trident. That should speed things a lot with the IE development/release cycle, also would help finding and fixing bugs a lot easier. Also that would open up the possibility of porting the engine on other architectures, like linux for example.

  • http://blog.doru.homeunix.org Doru

    Off-topic: I noticed that your blog is powered by iis, wordpress and asp.net . I wonder if you ported wordpress for asp.net, or it’s just propaganda ?

  • http://www.nerdydork.com Dustin

    > I hear that last point all the time and it drives me nuts. Yes, Internet Explorer 6 was a nightmare to code for. But that’s simply not the case for Internet Explorer 7 or the recent Internet Explorer 8 beta. At least not in my experience.

    What a load of crap! Perhaps you don’t have enough experience coding web 2.0 applications. Sure basic html sites are OK. But I find way too many quirks in IE with completely standard compliant code in all versions of IE.

    I was thinking this morning that since IE supports activex, perhaps someone could write a plugin that would use the webkit engine inside of IE. Turns out Google was way ahead of me! :) http://code.google.com/chrome/chromeframe/