In the beginning there was Netscape (though there were lesser known browsers before that). Then, seeing the opportunity to gain more marketshare and money, Microsoft licensed Mosaic, and created Internet Explorer. Then there was the first browser war.
The story is interesting, and there was a lot of unfair play, but everyone knows the ending. Microsoft included IE in Windows, and put money behind marketing and proved yet again that a superior product wasn’t necessary to win.
Then there was peace, with web developers having to only cater to one browser.
Then Netscape resurrected itself in the form of Firefox. It was far superior to Internet Explorer in every way. It was standards compliant, it had great extensions, it was cross platform etc..
While is gained significant traction, there were too many people who continued using Internet Explorer because it was preinstalled on their system, and others, who needed to use it because some sites required it.
So, how can Firefox stay relevant?
By building JägerMonkey.
According to Firefox developers David Mandelin, “The reason we’re [building JägerMonkey] is that TraceMonkey is very fast for code that traces well, but for code that doesn’t trace, we’re stuck with the interpreter, which is not fast.”
I was very interested in this, so I got in contact with David Mandelin (from Mozilla) to discuss this.
Here is a transcript of our discussion:
Antony: Why not use V8 instead of Nitro?
David: We just liked the design of Nitro’s assembler. Also, their VM is more similar to ours generally, so we thought we would run into less trouble. We also learned that Nitro’s assembler is better optimized for ARM.
Use V8/Nitro as a complete replacement and then, later, when JägerMonkey is ready, switch to TraceMonkey with V8/Nitro assembler.
David: Doing a complete replacement would not be a quick process. The browser interacts closely with the JS engine, so the browser has a lot of code using the JS engine API and depends on the JS engine’s guarantees. There would be a lot of code to change and likely a lot of subtle bugs to fix.
Antony: Currently the main reason some people switched to Google Chrome is speed.
David: That is what I hear from my friends as well. I care about it a lot and making our JS faster is my top priority this year. As you say, the competition is very good, and we know we have to work hard to catch them.
That sounds like a promise!
It’s always great to get in contact with a developer and not hear excuses. David is aware that Firefox needs to improve, and is committed working toward that goal.
I look forward to an interesting year for web broswers!