10 years after its launch, Mozilla keeps impressing me day after day, in many different ways. Let me give you two very different examples:
Localizing something in 44 languages in less than four days
We have decided recently to trigger the major update from Firefox 2 to Firefox 3 for people who have not yet manually installed Firefox 3. One "detail" remained to be fixed: the 15 words message displayed to Firefox 2 users was not localized... Well, translating 15 words sounds like a pretty easy task. Do this into 44 different languages is a bigger challenge! Our community, wonderfully led by the ever amazing Pascal Chevrel has managed to achieve this in less than 4 days. Fernando, a Spanish localizer, managed to do the work and post the result in just 34 minutes after Pascal asked for it on a mailing list, around 3AM his time . The work was also done for Georgian, which is quite an achievement when one knows what is happening there. Now, to better understand how much of an achievement this is, we can ask ourselves if a commercial software vendor could be able to do the same thing with such a short notice. The answer is of course that it's not, even with big financial resources to help... I think this episode is a great demonstration of the agility in a global context that the community is bringing to the Mozilla project.
More details on this:
- Seth: 44 locales in 4 days ;
- Bugzilla: Bug 451128 – Translation needed for strings on the new Firefox 2 to Firefox 3 Major Update box ;
Improving JavaScript speed
Firefox 3 has brought a significant speed improvements in JavaScript. But following the recent TraceMonkey announcement, we now anticipate Firefox 3.1 to bring a much bigger speed boost, thanks to a new kind of JIT compiler for JavaScript. A picture being worth a thousand words, here is a chart comparing Firefox 3 (already much faster than the dominant browser) and an early version of Firefox 3.1 with TraceMonkey turned on:
TraceMonkey assorted benchmarks
In a nutshell, this means that the Open Web as a platform is going to get a speed boost that will make proprietary alternatives jealous (yeah, I'm looking at you, Silverlight and Flash!)
This was made possible by the collaboration of many different people, including folks from Adobe (Tamarin project), UC Irvine and other Mozilla developers. It's a testament that the Open-Source approach enables practical, real-world innovation.
More details on this:
- Schrep: What can you do when your browser is 7 times faster? ;
- Mike Shaver: the birth of a faster monkey ;
- Brendan Eich: TraceMonkey: JavaScript Lightspeed ;
- Andreas Gal: Tracing the Web ;
- David Anderson’: SpiderMonkey + Tracing = TraceMonkey ;
- John Resig: A fantastic new improvement to Mozilla's JavaScript engine (SpiderMonkey) has landed ;
- Ars Technica: Firefox to get massive JavaScript performance boost ;
- Slashdot: Firefox Gets Massive JavaScript Performance Boost ;
- Didier Girard: JavaScript JIT: The Dream Gets Closer (in Firefox) ;
4 réactions
1 De Nÿco - 25/08/2008, 11:49
Excellent for the open standards repect and performance! Besides, the WebKit is doing the same performance boost. We will all benefit from this healthy and fair-play "coopetition".
I don't understand the relationships between TraceMonkey and Tamarin, can you explain? Now and and in the short and longt-term future. Thanks.
2 De Yann - 25/08/2008, 12:03
Flash, jalous? Are you saying adobe should be jalous of its own javascript compiler, if that's the one they released 2 years ago?
3 De Thomas - 25/08/2008, 18:20
@Nÿco : http://www.geckozone.org/forum/view...
4 De Dominique De Vito - 27/08/2008, 09:37
For me, the availability of JIT compilers raises 3 questions, for short-term or long-term.
(1) Why not packaging and releasing separate JDK and JRE (here, J is for JavaScript), that is, outside Mozilla releases ?
While more speed gives JS a greater interest as a language, it deserves separate JDK and JRE. Then, it might be a candidate for other script language (Perl ? may be more Tcl/TK ?) replacement, for scripting outside browsers. Why not ?
(2) The first point raises the question of the JavaScript standard library.
I have suggested, when commenting a previous post (Comparing the evolution of Java and JavaScript - http://ajaxian.com/archives/compari... ), that JS needs a more standard library like Java (a CPAN web site ?). If one wants to push JS higher, and, as one example, outside browsers for more scripting, then JS needs a API giving more access to system resources, like file resources.
(3) A JIT compiler is better efficient while having more type information. JS may need optional (!) type information for execution speed improvement.
Currently, one could define a counter like “var i = 1;” while a “int i = 1;” definition could be more interesting for a compiler :
(a) the first form just says “i” is a variable, currently initialized as an integer, but with no constant type attached.
(b) the latter option just says that “i” is always an integer and if no conversion could be done when assigning later this variable, then an error should be raised.
As a scripting language, the constraint is that both forms should be accepted by JS. Questions remain about introducing more (optional!) typed styles for defining variables into JS as a language.
(4) While combining HTML and JS has been proven valid, one high-level GUI programming way may be needed for GUI scripting, that is, for example, in order to use JS instead of Tcl/TK .
SUN is going to launch JavaFX as a more high-level GUI programming on top of Java. GWT has proven one may program in Java and deploys on top of browsers. I don't know yet if it is technically feasible but a JavaFX-like may be defined to compile on top of HTML+JS, similarly to GWT. I hope such way could be followed as I prefer to program in Java, a more typed language than JS. Anyway, other options exist like OpenLazlo.