Home > Development > blogs
ᅠᅠ
Projects and Products
ᅠ
You may have noticed that I have lumped Mozilla's technologies under two categories: projects, and products. For all the stuff Mozilla has going on, they have only two products, Firefox and Thunderbird. What does that mean? Those products get the priority, support, and intentional effort to finish, market and distribute. And only those. This has been a cause of consternation and debate in the community.
ᅠᅠ
Does it have to be a product?
ᅠ
So for XULRunner and Prism, is following the model of projects like Camino and Seamonkey good enough? These projects are supported by Mozilla in a number of ways, but are not official Mozilla products. For all the benefits of using Mozilla technology such as XULRunner, a developer is on their own when it comes to deployment and distribution of the runtime. They must create their own installation scheme. The developer has to worry about the runtime as well, not just their application. Does the fact that the community hasn't met this challenge mean there is not a big enough need? Or is this untapped potential for Mozilla? If they build it will the developers come?
ᅠᅠ
Developers are Users Too!
ᅠ
An RIA runtime as a product? Is that crazy? No, just remember that we as developers are users too, and we need support for building applications. Just look at the successful history of the Flash Player. Macromedia, and now Adobe produces the Flash Player intentionally for developers and designers to use, and supports this as well. When deploying an application to the Flash Player, or the new Adobe AIR, Adobe takes care of the runtime details, leaving the developer to spend more time on cycles that directly impact their use cases or creative purposes. Could a product that delivers on this for Mozilla-powered applications be successful too?
ᅠᅠ
Backwards Compatibility
ᅠAnother area to pay attention to is backwards compatibility. By taking advantage of all the unique traits of the Mozilla platform, you expose your application to break in future software releases. A good example can be seen every time there is a major Firefox release. A large number of add-ons end up needing to be updated in order to work. FIrefox 3 is no exception. Many times the update is trivial, but that doesn't change the experience of a user who updates to the latest and greatest and is told your add-on is not compatible.
ᅠᅠ
Glimpses of the Future
ᅠ
Now I don't mean to hate on Firefox and Mozilla. Hopefully this entire series has showed that. There are some cool new advancements and developments that are happening that show some real potential.
ᅠ
The projects that Mozilla is contributing to along with Adobe are very exciting, projects like Tamarin, and Tamarin-Tracing. There is the new hidden feature in Firefox 3 that allows it to run stand-alone XUL applications. This is cool, however again, unsupported, and not necessarily going anywhere. Then there is Mozilla 2. What that means for all of this is anyone's guess.
ᅠ
So for all thats possible right now in building RIAs with Mozilla technology, there is a great deal more that can be done. Having these technologies in your toolbox is a smart move, and may end up motivating Mozilla to help us help them make it more.

Good series -- would be helpful to cross link your 3 posts.
The most effective way (IMHO) to develop RIAs on the Mozilla platform is as extensions -- installations within the Firefox or Thunderbird products. This provides enormous power and a more supported path for upgrades.
There is a notable missing technology in the 3 articles that I think would be pretty critical to your audience. SVG, and particularly, the ability to use Compound DOMs to represent a mix of SVG, HTML, XUL (which MXML seems modeled after, but I don't know the full history).
My MS work in human factors used the compound DOM to visualize mouse movement velocity & acceleration in a cascading menu: http://www.surfmind.com/masters/screens/the_making_of_a_visualization.html
Shared DOM between HTML and richer content is very powerful -- apply the same CSS and event listeners to HTML as you do to your vector graphics. Seems like the MSFT folks picked up on this with Silverlight.
Thanks for the cross-linking reminder. Getting that fixed right now!
The most supported way to develop on the Mozilla platform is definitely Firefox Add-ons. As being the most effective, it depends on what your requirements are.
Thats a really good point about SVG being conspicuously missing! I think I know the reason for that. :) I come from a Flash background, so when I think of vector graphics, and any advanced data visualization, I immediately turn to SWF. Yes, this is proprietary, but much more portable/ubiquitous than SVG. In fact, I integrate Flash extensively with my XUL apps in certain areas, especially where audio/video is concerned.
The compound DOM thing sounds very interesting. (As does your MS work!) I wouldn't call it critical though. I've found mixing XUL and HTML can be problematic and complex. If I need some HTML functionality oftentimes I'll encapsulate it into an XBL component (or an iframe), which is essentially compounding the DOM, but isolating it away from the parent XUL composition.