Today is a good day to code

Firefox as an Application Platform

Posted: December 31st, 1969 | Author: | Filed under: Uncategorized | No Comments »

Firefox as an Application Platform

Picture of IrvinRecently I started working with XUL and building Firefox plugins. I was incredibly impressed by how easy it was to access and manipulate the browser to perform any task I wanted it to. Most of the ease is due to my comfort level with JavaScript and the DOM. But it made me ask the question, why is it so hard to extend Internet Explorer, but so easy to extend Firefox?

The first part of this is that the Mozilla foundation didn't try to turn Firefox into something it wasn't. In building Internet Explorer into the operating system. Microsoft effectively made developing applications that manipulated Internet Explorer as difficult, or as easy depending on who you are, as building Windows applications. For many developers, building Object Oriented applications using C#, Visual Basic, or C++ is very intimidating. Especially since the people who are likely to be interested in creating these applications are probably going to be the same people who are building web applications. Microsoft missed this and it is going to cost them dramatically.

The prospect of Firefox as the source of all your applications isn't far fetched. The ability to build applications based on a browser is not new, but the ease with which one can develop those applications for Firefox has come a long way. Now that Firefox has built in spell-checking, it makes turning it into a word processor very easy, which is something that I have upcoming for my StrictMistress novel authoring software. Some might say that it doesn't make much sense to build an application in a browser, but I'd point to Adobe's Apollo as an example that building a desktop / web hybrid application is exactly what people want. The other benefit is that since Firefox has been ported to mostly every platform around, your extension application is likely to work everywhere Firefox can run with only slight modifications.

JavaScript as an application development language isn't scary. Contrary to many a back-end developer's opinion, there is nothing wrong with JavaScript. The language itself is efficient and robust. As well as easy to understand and feature-rich. The problem with JavaScript has been its implementation. Since Internet Explorer only effectively supports JavaScript 1.3, and all Mozilla browsers support JavaScript 1.8, there is a disparity in what works where. This problem is alleviated when building Firefox extensions since you are targeting a single browser. The only thing really lacking are development tools for plugin developers, but this is changing rapidly.

I think that Firefox is the ideal platform for application development, and I intend to start building web applications as plugins far more in the future, and I'd encourage you to do so as well. Here are some links to help you along:

Extensions Development Tutorial

Setting Up Development Environment