Jetpack is a new extensions system that allows developers to leverage their existing web skills to create Firefox add-ons. I caught up with Mozilla’s Nick Nguyen to discuss the project’s future.
Craig Buckler: Firefox add-ons is possibly the most successful extensions system ever devised. A huge community has developed over 12,000 add-ons, so why is there a need for Jetpack?
Nick Nguyen: As you mentioned, our add-ons platform is incredibly successful. Having said that, there have been a number of areas of improvement that the add-ons community has identified including ease of development, the lack of tools, and the difficulty of debugging that we felt we could explore with Jetpack.
The vision of Jetpack is to expand the population of add-on developers to include any web developer with an idea — hence the emphasis on Web technologies.
CB: Do you see Jetpack as a replacement or an alternative to XUL-based extensions?
NN: Just as Ubiquity has been embraced by the Mozilla community, Jetpack is an experimental platform which will be driven by members of the community as well as Mozilla Labs. Because we’re trying things that haven’t been done before, we expect some things to be successful and other things to need revisions. This is much easier and safer to do on a new experimental platform than it is on the existing one, so we’ll continue to evolve both Jetpack and XUL based extensions.
We view Jetpack as complementary to the existing platform — some things we learn from Jetpack may migrate into the existing platform or Jetpack may continue to evolve as a separate path to rapid extension development.
CB: Is there any risk of confusing or fragmenting add-on developers and users?
NN: There is always the possibility of confusion, but communication with our community is important to us. We’ve tried to make it clear that Jetpack is not a wholesale replacement of the current system and we will continue to do so.
CB: The current Jetpack API provides access to browser tabs, notifications, and the status bar. Will it eventually provide full access to the chrome interface like XUL?
NN: We’re reaching out to the community and doing some of our own thinking on which UI elements to open to Jetpack. There is a necessary balance between ease of development and platform flexibility that we’re exploring. The goal is to get Jetpack to a point where it exposes enough functionality to implement a large percentage of Firefox extensions, thus giving developers the flexibility to build their ideas.
CB: You plan to include external API libraries for systems such as Twitter, Delicious, and Google Maps. What is your selection criteria and can any site developer request inclusion?
CB: Extensions could introduce malicious browser code. How will Jetpack address security concerns?
NN: Security in Jetpack is aspirational in the current early stage of development. We want to explore the intrinsic ways the platform can improve security through architecture. For instance, we want to maximize code reuse through the use of libraries and limit the amount of bespoke extension code to the lowest number of lines. We feel that at a minimum this makes code review much easier, and opens opportunities to programmatically understand the level of access an extension requires to function. How that information is exposed to users and reviewers is another open question we plan to answer as the platform evolves.
CB: Will Mozilla provide a Jetpack repository that allows users to search for extensions?
NN: Just as addons.mozilla.org helps extension developers with distribution and metrics for their add-ons, we will soon launch a gallery which will do the same for Jetpack developers. How this will look and what it will be called is still to be determined.
CB: Firefox updates can break existing add-ons or require the developer to update their code. What can Jetpack do to alleviate the problem?
NN: Since Jetpack provides an abstraction layer between add-ons and the underlying browser code, maintaining compatibility across browser versions becomes a matter of updating the core platform rather than individual extensions.
CB: Firefox add-ons are often blamed for making the browser slow. Are you addressing that issue in Jetpack?
NN: Poor Add-on performance is often the result of implementations that aren’t made with the benefit of deep knowledge of the Firefox platform. This is partly due to the flexibility and “bare metal” nature of the current extension development.
By promoting code reuse and an abstraction layer, thus removing the burden of requiring this knowledge, we can more easily improve Jetpack performance for all extensions by improving the performance of the underlying platform.
CB: Jetpack is currently an add-on itself. Will it eventually be integrated into Firefox?
NN: Jetpack is an experiment. Aspects of Jetpack may become part of the core platform or Jetpack may evolve along a separate path. It is too early to know for sure — as with all things we do at Mozilla, the community’s involvement and feedback will help drive that decision.
CB: Will Jetpack find its way into other Mozilla projects, such as Fennec (mobile browser) or Thunderbird?
NN: Definitely possible, but too early to tell. Many aspects of Firefox extension development apply equally across Mozilla products, and approaching Jetpack with the goal of improving Firefox add-on development will result in learning about how to improve Add-ons for all Mozilla products.
CB: Jetpack extensions could become cross-browser compatible. Have any other browser vendors shown interest in the project?
NN: Yes, and we’re pleased to see that extension development has generated such interest in the browser world. As for specifics, I’ll leave it to the other vendors to disclose their interest.
CB: The Jetpack team are asking for developer participation. How has the response and feedback been so far?
NN: Response has been great. We’re seeing active participation in the Jetpack discussion group and we plan on continuing to grow that community as we build in more capability to the platform.
CB: When did work on Jetpack commence and is a final release date scheduled?
NN: Jetpack was inspired by community feedback as well as projects like FUEL which had similar goals of improving the developer experience. Actual brainstorming and implementation started early in 2009, but we have no final release date. We will release at an experimental pace and cadence until the community feels like we’re close to the finish line.
CB: Thanks Nick. Best of luck with the Jetpack project.
Have you tried Jetpack? Is it the future for the Firefox add-ons system?
Craig is a freelance UK web consultant who built his first page for IE2.0 in 1995. Since that time he's been advocating standards, accessibility, and best-practice HTML5 techniques. He's created enterprise specifications, websites and online applications for companies and organisations including the UK Parliament, the European Parliament, the Department of Energy & Climate Change, Microsoft, and more. He's written more than 1,000 articles for SitePoint and you can find him @craigbuckler.