The Firefox Summit 2008 started today in the city of Whistler, BC, Canada. Around 400 contributors to the Mozilla project gathered to meet, share thoughts and discuss the 3.0 release of Firefox and plan for the next releases. I'm attending the summit as the Arabic localizer. I will post a daily highlight of the summit on my blog, so let's start with day one.

Opening Presentation
The summit took off at 10:00 AM with a welcome note by the CEO of the Mozilla Corporation, John Lilly. This was followed by an interesting presentation by Mitchell Baker, former CEO and current Chairperson of the Mozilla Corporation. The presentation focused on the nature of the Mozilla project. It used a tree as a metaphor to describe the foundations of the project and its main aims. The presentation was very interesting in several ways. It highlighted the differences between Mozilla and other Open Source projects. One major difference is that Mozilla has its own employees in addition to contributors. Having employees did not affect the openness of the project or hinder volunteers from doing their work. On the contrary, employees help in providing focus to the project, and drive the project to achieve its short and long term goals. Another interesting point was Mitchell's discussion of the main objective of the project: improving human interaction with the Internet. The Mozilla tree is available on Mitchell's blog. The picture on its own does not say a lot. Mitchell says she will post an explanation soon. The presentation was followed by a QA session on various aspects of the Mozilla project. Many people seemed interested in bringing Firefox to mobile phones, and to as many countries and languages as possible.
JavaScript Performance
After lunch, at 1:00PM, I attended a talk on improving JavaScript performance using a technique called JavaScript tracing. This technique uses a just in time (JIT) compiler that monitors code paths that are executed often, and compiles these paths into native code. It is different from the usual JIT techniques in that it works on code execution paths instead of methods. This gives the JIT compiler greater flexibility in optimizing the code, since it knows many more things about it, such as variable types. Given that the JIT compiler makes certain assumptions when compiling the code, it uses guards to protect the compiled code from being executed when the assumptions do not hold, and in such cases the interpreter handles the code instead. This guarantees the correctness of the execution. This seemed like a very interesting optimization approach, and according to the presenters, it improves JavaScript performance in Firefox considerably. The next release of Firefox is expected to utilize this JIT compiler.
Localization Talks
After that, I attended two talks on Firefox Localization. Let me emphasize the importance of localization by highlighting the fact that English is not the native language of around 50% of Firefox users. Therefore, it is very important for Firefox to support as many languages as possible in order to keep gaining market share. The first talk was an overview of the Firefox 3 release by Axel Hecht and the rest of the L10n drivers. It covered the lengthy process of producing localized versions of Firefox, from early betas to the final release. Many localizers voiced their opinions on what could be improved in the process. I suggested simplifying the work of localizers by offering translatable files in PO format instead of XML files. This can be done by integrating the Translate Toolkit into the build process of Firefox, which is a set of tools to convert between various formats that store strings. PO is a standard format that is used by many Open Source projects, and it has many tools and most contributors to Open Source localization are familiar with it. On the other hand, the XML format of Mozilla is less known and harder to work with. The suggestion was not that well received on the basis that the Translate Toolkit contained bugs. So looks like I will continue to generate PO files on my own rather than relying on Mozilla to do this. The second L10n talk presented several interesting tools that could simplify localizing programs. The projects were still in early stages, so I will have to wait before I can decide whether it is possible to benefit from any of them in localizing Firefox.
Firefox 3 Post-Mortem
Finally, there was a lengthy presentation titled "Firefox 3 Post-Mortem". The presentation went through the 3.0 release of Firefox since the early brainstorming stages in mid 2006, until the actual release in June 2008. It was very interesting to learn about the planning process, and how priorities changed as time went. It was also interesting to hear about how features and bugs were handled, and how building and testing were carried out. The growing number of languages that Firefox supports certainly added to the complexity of the process.
For tomorrow, there are several talks that I'm interested in attending, particularly the ones about security and performance, but sadly I won't be able to attend everything I would like to because of conflicts in times. Let's see how it goes.












Comments
Sandip Saini
Excellent report, sounds like a great time!
Posted at 11:39 a.m. on July 6, 2009