IE9 Beta 1 arrived today, and it looks great. The browser wars are back on and getting heated. The IE guys have been getting very bullish about performance on their blog site. See their post from a few days ago at http://blogs.msdn.com/b/ie/archive/2010/09/10/the-architecture-of-full-hardware-acceleration-of-all-web-page-content.aspx. Mozilla got beta 5 of Firefox 4 out of the door a couple of days ago and have hit back hard with various counterclaims see http://www.theregister.co.uk/2010/09/13/mozilla_v_windows_on_hardware_acceleration/. Who is right? Well, as I see it, we have an unwinnable playground spat about who was ‘first’ in GPU acceleration and the undignified sight of both sides claiming to have the fastest browser.
It’s easy to investigate the performance side of things, at least in a casual way. One place to start is the IE9 test site at http://ie.microsoft.com/testdrive/Performance/01FlyingImages/Default.html. Now, of course, this is a Microsoft site and is likely to favour their browser. However, this site has been a work in progress for a long time now, and cannot, as a simple matter of chronology, have been explicitly doctored to show Firefox 4 beta 5 in a bad light. Whatever the truth about why things are as they are, it is clearly the case that Firefox 4 can sometimes rival IE9 performance when running the GPU-orientated demonstration pages on that site. Take ‘Flying Images’ for example. It’s fine if you view ‘My Browser’ or ‘All Browsers’. However, try ‘Fix Photo’ or ‘Large IE Logo’ and see the difference. IE9 is much faster. Try playing Browser Hunt on both browsers (hey, it’s Pac-Man). IE9 wins hands-down.
OK, so these test could be biased. Where else can we turn. Ahha. There is a single test page that Mozilla has been using to demonstrate the wonders of GPU acceleration in Firefox. You will find it at http://demos.hacks.mozilla.org/openweb/HWACCEL/. Let’s do a comparison. Oh my! Firefox 4 is the clear winner. It reports performance 50% faster than IE9. Turns out, though, that this page is no good for comparing hardware acceleration performance between different browsers (Mozilla, of course, never claimed it was). The culprit is the line ‘if (!stop) setTimeout(draw, TO)’ where TO, which is initially 30, tends to a value of 0. As the test speeds up, you just end up measuring the browser-specific resolution of the timer set by the zero-interval call to setTimeout(), rather than the speed of rendering. Differences in rendering are so small that they are hidden by timer resolution characteristics. At least we can say that when using setTimeout() in this way, FF4 is faster than IE9. Maybe MS should change the timer resolution in IE9? Just an idea.
OK. So we can see, as so often with micro benchmarks, that you can pick the test of your choice to ‘prove’ whatever you wish.
Let’s try the SunSpider test.
IE9 Beta 1:383.6 ms
Firefox 4 Beta 5:504.2 ms
Today, IE9 has a faster JavaScript implementation than Firefox 4. That surely is beyond contention. But wait a moment. The Mozilla crew are working an on a new JavaScript engine which they claim will propel them into poll position at some point in the future. Watch this space!
One thing that surprised me going through the Microsoft tests is the number of technologies that the Firefox beta does not seem to support. I ran into issues with SVG, MP3, etc. I was also surprised that, going through Microsoft’s tests, I couldn’t immediately locate any obvious improvement in FF4 over FF3.6 in terms of standards compliance. That surely can’t be right. I haven’t the time to investigate this further, but it was a weird experience to see IE9 happily doing a whole bunch of things Firefox 4 can’t, and doing them in a more standards-compliant fashion. I’m sure, though, that someone could come up with stuff that Firefox handles and which IE9 does not.
I’m going to largely steer clear of commenting further on standards compliance for the simple reason that this is such a fraught area, it needs proper independent assessment. I will say this, though. IE8 made significant improvements, but still fell short in several areas. IE9 is clearly in a different league to previous versions. I’m sure we will see a huge effort to try to trash what Microsoft has achieved and the advent of new web sites dedicated to trying to convince you that IE9 is a failure. However, I expect that IE9 will do rather well when tested independently using official compliance test suites for various specifications, and may even emerge as best-of-breed in a number of areas.
Microsoft has been playing catch-up with the other browser suppliers for a very long time. There are many people in the web development community for whom the notion that IE is a perpetual poor relation to other browsers forms a core part of their belief system. The trouble is that, as often tends to happen over time, the laggards catch up. They may even become the leaders. Some people find this unnerving. Expect an avalanche of claims and counter-claims in the days to come, and lots of red-hot anger and bile. WebGL support seems to be one area of contention currently, so why not use that to have a go at MS, if you are so inclined.
We are seeing the dawn of the end of an era. Of course, older versions of IE (especially IE6) are still widely used and will haunt Microsoft for years to come. The IE6 phenomenon is due to the fact that many corporates have far slower cycles than Microsoft when it comes to technology refresh and remain locked down on this dinosaur of a browser. Anyway, the point is this. IE has now climbed its way fully out of the hole it was in and is back in contention, at least on the Windows platform (multi-platform support is one thing that IE certainly can’t touch). This is a good thing. It results in greater competition and better browsers. IE9 would not exist if it were not for Firefox, Chrome and Safari. Firefox, Chrome and Safari will end up as better, faster, more standards-compliant browsers because of the new ‘threat’ from IE9. We all win. Thanks, Microsoft, and thanks Mozilla, Google and Apple.