I’ve been an open source advocate for years now, and I think open source software is among the best thing that can happen to us. Bottom line; it empower people. However, that doesn’t mean that I’m a zealot, where for example I’ll try my best to cover its various problems.
I’ll say things as it is, so my clients will be informed, and can face it prepared (instead of caught off guard).
But **I** was caught off-guard by Firefox.
Nowadays I’m very much dependent to Firefox. It doesn’t crash as often as Opera on me when opening a lot of tabs (don’t ask me why, it just do), and it’s much more secure than Internet Explorer. Not to mention the extensions – I’ve been saved by LiveHttpHeader and various other tools many, many times.
However, speed-wise, especially with Javascript-heavy pages, Firefox is a snail.
I didn’t notice the problem because there wasn’t that many Ajax-ed websites back then. Firefox was snappy, secure, and made me very productive. Even if it’s consuming available memory rather happily, I didn’t mind.
Then Web 2.0 arrived. To my surprise, opening just a few of those can slow down Firefox to a crawl.
Many times I was typing my email on Gmail with the speed of around 1 character per second. Indeed I can type much faster than that, but then I’ll be watching the characters that I’ve typed slowly appeared on screen, one by one.
This is on 2 GHz machine with 1.5 GB of RAM, and little else running.
I tried Swiftfox. Unfortunately, it’s still the same. So clearly, the problem is not with machine-specific optimizations.
Day after day, this continue to cause me problems. Finally, I set myself on the journey to find the reason for this, and how to get rid of the problem.
After much browsing around, I think the main culprit are :
- SpiderMonkey, the Javascript engine used by Firefox, sucks. Really sucks
- Firefox uses SpiderMonkey for itself. Therefore, if a website is heavy on Javascript, then Firefox itself will be blocked while it’s processing that website, and become unresponsive.
I suspect that the 2nd point is actually the biggest issue. I don’t mind when it takes more time to render a website, if I can still switch to another tab and continue my work there.
Unfortunately, not only it’s really slow in most cases, sometimes it’ll even freezes for minutes.
Add extensions processing load on top of that, and it can get really ugly.
The first idea may be to make SpiderMonkey multi-thread. However, for various reasons (including portability, backward compatibility, and platform issues), and also other technical problems, this does not seem feasible to be done anytime soon. At the earliest, it will be on Firefox 5.
That leaves us on SpiderMonkey itself. If we speed it up, then it will speed up Firefox too.
Thankfully, on November 2006, Adobe decided to donate Tamarin to Mozilla foundation.
In short, Tamarin will be used in SpiderMonkey’s core; enabling various optimizations to be performed, thus speeding it up considerably.
Naturally, I was too happy and got all psyched up when I found out about it. Then it dawned on me, is this simply too good to be true ?
No, the Tamarin stuff is for real. However, there’s a bad news in relation to this.
The earliest we can expect to have a taste of Tamarin is on the Mozilla Application Framework 2 (aka “Mozilla 2”) which is used in Firefox 4, which is due on 2009.
We’re still 2 years away from a (much) faster Firefox !
Even then, there’s still no guarantee that Tamarin will speed up Firefox 4 (FF4) significantly, if the UI still freezes everytime FF4 is working on a time-consuming script.
Unless somebody managed to develop a clean hack to speed this up, please excuse me while I’m browsing the Internet in slow-mo.
Nowadays browser competitons are increasing, with Safari for Windows just released, Opera team stepping up for 9.5 release, and IE no longer a stale project — Firefox definitely could not afford to have slower progress than them. Let’s raise awareness on this issue, so we’ll all benefit from a faster Firefox.