15 November 2006

GUI Toolkits - XULRunner platform

You can't have escaped this platform, you might not have heard about it, but it provides the basis for Firefox, Thunderbird, Democracy Player, and SongBird (which I mentioned before and it's continuing apace). A good place to start is the Wikipedia article on XULRunner, it provides the links you need to get started.

XULRunner is not simply a user interface but probably could be described as a platform like Microsoft's XAML/.NET or like Java's virtual machine (very loosely) or Boxely from AOL. Essentially it provides a layer of abstraction from the underlying architecture in order to allow the developer to work on the actual coding. XULRunner is the framework to allow standalone applications to be developed using the XUL language used for Firefox extensions.

Currently XULRunner is in beta with version 1.8, but with version 1.9 next year they recommend that for production releases. Along with the 1.9 release the Gecko rendering engine is also getting updated with some additional nice vector rendering.

The framework provides a myriad of features. There is built-in spell-checking, networking, the aforementioned Gecko engine, web services, storage/SQLie interfaces, UI, the ability to embed in another application, and also the Python bindings (full version forthcoming). I think the reason that I find this quite interesting is the two applications I have used most at home and work in the past couple of years have been based on this. I just wonder how far it can all be pushed for heavyweight desktop application development.

You can view a list of applications based on XULRunner here. When the final proper release of 1.9 is out I imagine there will be more people willing to use it as it won't be all belt and braces, there can be solid tutorials and the suchlike.

With so many of these types of projects around at the moment, I am wondering when the "survival of the fittest" will start to kick in. Admittedly, XULRunner has a very strong chance since it is a platform for Thunderbird and Firefox.