Sunday, June 20, 2010

What makes one browser better than another?

First, I apologize in advance for inevitably being biased against Internet Explorer, it's just sooo bad, see, I blew it already.
A browser is a program which downloads code from remote servers and renders it onsite, for your convenience. So, the browser downloads html (see the post on html5), javascript (more on that later), and content for plugins (such as Adobe Flash or Java). It then renders the code, which means that the code is processed and displayed on your screen, formatted for your computer.
So javascript, it is another markup language (see post on html5), it looks alot like html but can do a whole lot more, if used to it's fullest extent, it can provide high quality applications that are fully web-based, like Gmail or Yahoo Mail, like GDocs or Office Live, like Facebook, but it can also do smaller things, like handle all those little buttons you like to click. To show the difference between html, javascript, and flash: Wikipedia is about as pretty as html can get, Facebook is a great use of Javascipt, and Flash is what plays all those youtube videos.
A few years ago, browsers used to make claims to fame based on security, or features, or compatibility with certain websites, but now most browsers try and claim to be the fastest. When a browser claims it is fast, it is talking about javascript execution speed, which can be easily benchmarked. Not all browser engines were created equal. Internet Explorer (the slowest browser) uses an engine called trident. Trident is old and outdated, and Microsoft knows it, that's why, instead of saying that it is fast, or making a newer, better engine, they brag about how IE has a good spam and phishing filter. Firefox uses the Gecko engine, which is far faster than trident, but still slower than many other browsers. But firefox has some things going for it anyway. Firefox has the most addons and themes for its browser as well as great security. It is also so much like IE that many people can switch to it and still feel comfortable with the interface. Both Chrome and Safari run on Webkit, which means that they have similar speed and compatibility, but with vastly different outcomes. Safari has been more focused on getting the most features ported to the mobile version of Safari used on Iphone and Ipod Touch, whereas Chrome has focused on the desktop by adding themes, extensions, and syncing user settings across multiple computers using your google account.
There are two main ways of ranking browsers: javascript rendering speed, and rendering accuracy. The most recognized javascript benchmark is called Sunspider, and browser are constantly trying to outdo each other on this test, currently the ranks are as follows:

  1. Chrome 6 (currently in beta)
  2. Safari 5 (just released)
  3. Chrome 5 (standard release of Chrome)
  4. Safari 4 (what most Safari users still have)
  5. Firefox 3.6 (or really any build will beat IE)
  6. Internet Explorer 8
As for rendering accuracy, this is how well a browser represents how the page is supposed to be seen. For years code has been writted knowing that the once-king of browsers IE didn't render accurately, but now there are browser that do render accurately, this means that pages may even look worse when finally rendered correctly. The test used to measure this is called Acid 3, and it's ranks are as follows:

  1. Chrome and Safari (both scoring 100/100)
  2. Firefox (94/100)
  3. Internet Explorer 8 (20/100)
Mobile browsers:

  1. Mobile Safari (100/100)
  2. Opera Mini (98/100)
  3. Android Browser and Blackberry Browser (93/100)
  4. Web OS Browser / Palm Pre and Pixi (92/100)
  5. Internet Explorer Mobile 7 (12/100)
In the end, it's still your choice. Some of you may have heard of opera, however I have not discussed it because it is so much like Chrome and Safari in terms of speed and compatibility.

Further reading:
Acid 3
Sunspider Javascript Benchmark
and for comic relief: Opera parodies Google's Chrome speed tests mercilessly (video) -- Engadget

1 comment:

  1. Of course, I'm stuck with Internet Explorderp. :P

    ReplyDelete