August 29, 2011

Rapid Releases: How Are They Working for Firefox and Thunderbird 6?

The Firefox 6 browser and Thunderbird 6 email app are both out now, and if it seems like just yesterday that you were reading about Firefox 5 — no, it's not your imagination. Both releases are part of Mozilla's new rapid release strategy, which means there are fewer new features in each version, but hopefully less breakage as well. In this case, Web developers get some new tools on the browser front, but Mozilla still has major problems to iron out of the new release approach.

Firefox 6

The new Firefox release has a handful of user-visible changes over Firefox 5, but most of the improvements will be of interest to Web developers. End users will get the benefits, of course, but only through the spread of more functional sites.

On the user front, Firefox's address bar now "highlights" the base URL (i.e., domain name) of the current page by rendering it in bold. This behavior mimics that of Chromium/Chrome, and although its principle benefit is clarity, it does have security implications as well. Because Firefox does the highlighting based on its own URL parser, trick-URLs that attempt to mask the real site's location with special characters — such as http://
This e-mail address is being protected from spambots. You need JavaScript enabled to view it
/ — should be significantly easier to catch.

The site identity block — which is Mozilla-speak for the first piece of the address bar — picks up some color and usability improvements as well. The color highlighting is there to make it painfully clear when a site's identity can and cannot be verified with a certificate authority (CA), and the block now picks up a key icon in place of the usual favicon whenever the browser notices a password and offers to save it for you. There are also improvements to Firefox Sync and faster startup for users of the Panorama feature (which allows you to group tabs into sets).

For developers, the biggest change is the introduction of the Web Developer menu. Not to be confused with the extension of the same name, the menu item is home to a set of debugging tools, including the existing error console, "view source" command, and character encoding settings. But those features have been around for ages; more interesting is the recent addition of the Web Console, which logs HTTP messages and JavaScript errors, and has a command-line JavaScript evaluator. Web Console actually debuted in Firefox 4, but in 6 it picks up several additional capabilities like command completion and tracing.

An entirely new feature in the Web Developer menu is Scratchpad, a full-featured JavaScript interpreter. While the Web Console can evaluate simple expressions (and is useful for examining page status), Scratchpad is more like a JavaScript IDE. You can write multi-line (even multi-screen) JavaScript functions and scripts, select any portion of them, and execute them. But you can also use Scratchpad to inspect code snippets, drilling into objects and functions, and you can use it to render JavaScript directly into a browser window. For debugging or rapid prototyping, Scratchpad is like Firebug built directly into the browser.

Developers will also be happy to hear that Firefox 6 includes support for three new APIs. The first is a bump to the latest version of WebSockets, and (notably) introduces prefixes to the supported-API-implementation. That way, future revisions of WebSockets will be able to check the API version supported in the browser, rather than just crashing if the API has changed. The second is the EventSource, an API for opening a persistent connection and letting the server send events to the browser. Finally, there is window.matchMedia, which is a way for animations and video to communicate the size and attributes of the window back to the server — hopefully side-stepping awkward layouts and mismatches.

Thunderbird 6

The version-number bump in Thunderbird is quite a bit larger than in Firefox, since the previous series was 3.x. However, the new numbering scheme is meant to keep the two applications in sync, particularly with respect to the all-important shared internals (like the Gecko rendering engine).

Feature-wise, it is Windows users who get most of the improvements in this release. The theme has been improved to better integrate with Windows, and the app supports "Jump Lists," which are a form of notification in Windows 7, with which you can see incoming messages directly in the system notification widget and then jump right to them. There is also improved support for those migrating to Thunderbird from Microsoft Outlook.

The Linux feature-improvement list just includes fixes for the "default email client check" which apparently has broken for some recent distributions. That's hardly anything to write home about, but the bigger news this year has been Mozilla's re-absorption of the "Messaging" spin-off project back into the main project. Perhaps when Firefox/Thunderbird hit 7, we will start to see the fruit of that labor. As it is now, Thunderbird may use the same rendering engine as Firefox, but several of the major extensions still need to do some catching up — including what I consider the most important add-on, the Lightning calendar component. If you upgrade to Thunderbird 6, you will need to go grab Lightning 1.0beta5 in order to retain compatibility.

Numbers, Schmumbers

The new rapid-release strategy at Mozilla has provoked a healthy share of backlash from Mozilla users. First came corporate users and their IT departments, who bear the burden of testing and deploying each new release — and frequently have to support the browser's compatibility with specific Web applications and extensions. Mozilla's Firefox Product Manager Asa Dotzler then threw fuel on the fire by telling enterprise users that the project didn't care about their use-cases. Later, Mozilla moved to repair some of the damage by setting up an enterprise-focused "working group" to tackle specific issues, including security reviews.

In August, Dotzler again triggered controversy by announcing a plan to remove the version number from Firefox — more specifically, to remove it from the "About" window first. He filed a Bugzilla issue on the subject, igniting a long comment debate (and a truly colossal mailing list thread to accompany it). Dotzler's plan was that in future versions of the browser, there would be no version number at all, and Firefox would be a rolling release type project, where all that matters is whether or not you have the most recent update. Trouble is, users and Web developers seem to think the plan is a bad one.

As people pointed out in the discussions, Firefox extensions are not automatically compatible when there is an update, and people whose work depends on a particular add-on need versioning information to know when the add-on is updated for compatibility. In addition, users who are not administrators (which is generally the case in office environments) can't update the browser to the latest release at will — and Web developers trying to debug a site problem rely on version information to diagnose problems and track regressions. On a practical level, one user pointed out that removing the version number from the About dialog breaks the convention followed by virtually every GUI application, and is essentially the only reason anyone ever opens the About dialog.

Ultimately, another Firefox developer closed the issue as WONTFIX, stating that supporters had failed to make a case for how the change was an improvement. But Dotzler is still committed to the plan as a whole, saying that the long term plan is to make Firefox version-less.

The plan sounds a bit like the DevOps model. It certainly has its advantages, though it is different in one important way — deployment of server applications requires updating one machine (or one "instance," it could involve a cluster) and the update is done by the team that develops the software. Client applications are not deployed that way, and installation and updates are not done by the developer. It could be a tough sell for browser users.

Still, the current version of the rapid-release approach is probably a win for users and developers alike. Mozilla's Robert Kaiser called it "doing evolution instead of revolution." In the old model, major UI changes hit suddenly, which always caused some confusion and discouraged some users from updating.

The incremental improvements — such as Firefox 6's identity block — are smoother, and rolling-back a bad one is less difficult. Perhaps more importantly, updates to new Web APIs and developing standards hit sooner, which means site developers can implement new techniques faster and without lag time. That's a change that benefits everybody.

Click Here!