Tag Archives: chrome

Browser Brawl

I actually installed the beta version of Internet Explorer 9 on my Windows 7 box. My first reaction was “hey, this looks a lot like Chrome”. Even Firefox 4 steals heavily from Chrome, so it is pretty clear where the thought leadership on browsers sits.

I will give Microsoft some credit. IE9 is a lot snappier than all its predecessors. It only has two major annoyances. First, the URL box is way too small. Second, I don’t like the notification popups in the bottom center of the screen. If something needs my attention, don’t bury it at the bottom of the screen.

Rendering is pretty good. ExtJS 3.3 looks good in it, unlike Firefox 4 which had a few CSS issues. Google recently updated their V8 Benchmark Suite, so I ran Chrome 7 versus IE9 just to see how they compared.

Chrome 7 gave me these results on my silly-fast 6-core AMD beast of a desktop:

Chrome 7 Benchmark Results

And the beta for Internet Explorer 9 came up with these results:

IE9 Benchmark Results

I won’t rule out Google tweaking their benchmark to make Internet Explorer 9 and the rest of the competition look bad, but based on this benchmark, IE9 doesn’t hold a candle to Chrome 7. I’m going to have to go fishing for some more vendor-neutral benchmarks to try out.

Rounding Error

A few months ago, I ran some performance comparisons of various JavaScript selector engines using Slickspeed. My intent was to validate claims made by the ExtJS team as to why they didn’t use the Sizzle selector engine in Ext Core.

Ext Core has now gone final, so I wanted to re-run my tests. But there was also some news on the browser front: Apple released Safari 4 and Google dropped Chrome 2. Being the geek I am, I had to try them out. My Slickspeed test was the perfect candidate for seeing what Safari 4 and Chrome 2 could do.

In my prior post, I said developers should be bowing at the throne of Google for Chrome and its pack-leading JavaScript performance. That crown has now been abdicated. Safari 4 and Chrome 2 are leaps and bounds ahead of everything else on Slickspeed.

Here are the details on Safari 4:

  • Prototype: – 9ms
  • Dojo: – 3ms
  • JQuery: – 4ms
  • ExtCore: – 19ms
  • Sizzle: – 2ms

safari4

Safari 4 didn’t get along well with SnagIt, so I was only able to capture the bottom of the results output. Here are the results for Chrome 2:

  • Prototype: – 13ms
  • Dojo: – 4ms
  • JQuery: – 2ms
  • ExtCore: – 41ms
  • Sizzle: – 1ms

chrome2

This is simply stupendous. The performance of JQuery turns into a rounding error in both these browsers. As a basis of comparison, here are the prior results for Chrome 1:

  • Prototype: – 13ms
  • Dojo: – 7ms
  • JQuery: – 8ms
  • ExtCore: – 13ms
  • Sizzle: – 8ms

So what conclusions can we draw?

  1. Choice of JavaScript engine becomes irrelevant with any of these two WebKit based browsers. They all fly, even lowly Prototype.
  2. Ext, LLC, screwed the pooch in not using Sizzle for the selector engine in ExtCore. It would have been a better investment in them adopting Sizzle and working to improve it rather than blazing their own trail. The difference in Chrome 2 between Sizzle and ExtCore is staggering: 1ms in Sizzle vs 41ms for ExtCore.
  3. The latest and greatest from Microsoft (IE8) starts to look absolutely pathetic compared to the competition. Microsoft should be ashamed of themselves for having their asses so soundly handed to them on such a critical piece of infrastructure as the browser. Whether it is due to their outdated opinions on open source, or that they can no longer attract top talent, Microsoft is proving to not even be a contender in the JavaScript performance race.
  4. Both Apple and Google use WebKit as the basis for their mobile offerings (iPhone and Android). The sheer power of WebKit is going to offer both these platforms outstanding opportunities for rich browser-based applications. It is clear why neither platform cares much about Flash or Silverlight: the don’t need them.

The Future of Browsing

The big news today was about Google Chrome. Chrome is web browser built by Google based on Webkit that is going to be their way of finally killing off Microsoft. They actually created an online comic book to explain why they created Chrome and the technology behind it.

What makes Chrome special compared to Safari or Firefox is their JavaScript VM called V8. The V8 JavaScript engine provides JIT compilation of JavaScript code, so your JavaScript RIA applications run with blazing speed. ExtJS is incredibly fast in Chrome. Another awesome feature is the ability to create a shortcut to a page that actually is an application link. For example, here is Chrome viewing the ExtJS API documentation:

Notice the window decoration with tabs, navigation, etc… Selecting the Create Application Shortcuts option will create a Start Menu, Desktop and/or Quicklaunch shortcut to the page you are viewing. Opening the shortcut opens the page as a pseudo-application, like this:

This creates a kiosk-mode view, without navigation. This web page of documentation is now essentially a standalone application. Google obviously intends Chrome to be the primary client-side hosting environment for its web-based application suite. This is also really good news for folks using JavaScript for RIAs. With the V8 JavaScript VM, you can have JavaScript performance on par with what a plug-in can do, and thus don’t need the plug-ins.

When Chrome goes final, I don’t see why anyone would not want to use it. It is extremely fast, with a clean UI and will completely change peoples perspectives on web-based productivity software. ExtJS becomes stunning in Chrome, and I’d actually bet that Google buys ExtJS to use it as their main JavaScript library. The only question becomes Google motivations. Will they “not be evil” or will Chrome turn into adware/spyware. Time will tell, but I’ll be using it until I think it is evil 😉