fonts: larger or smaller

This blog has moved to another location: http://blog.zaimbakar.com.
Please update any bookmarks.

Thank you.

2/14/2005 05:09:00 AM

Dream programming tool

A XUL runner that provides total structure/presentation/behaviour/localization separation. Obviously, structure (user interface) is implemented in XUL and presentation (UI look and feel) in CSS. Behaviour is implemented via either: JavaScript, Python or PHP (ok, maybe even VBScript). I'm not too familiar with localization tools (although I know how important it is). The runner is built upon 100% Java, therefore is cross-platform. But no Java programming is needed to build applications (since behaviour is implemented through pure scripting technology). It will be small and easily deployable within applications (or better still, it is intergrated by default within the Java 2 Platform).

Structure : XUL XUL is the Extensible User Interface Language. It allows software developers to define the user interface for applications (both web and desktop) using XML. The most prominent XUL implementation is Mozilla (well, since they created XUL in the first place). All of Mozilla's software (Mozilla suite, Firefox, Thunderbird, etc.) is built with XUL.

Presentation : CSS CSS is cool (or Cascading Style Sheet to be exact). If you're familiar with web design, you'd probably know about CSS. If XUL defines the application interface structure (a menubar, sets of toolbars for navigation, buttons etc.), CSS defines how they all will look like (what font to use, colours, button borders etc.)

Behaviour : JavaScript/Python/PHP Behaviour is the nuts and bolts of the application. If XUL and CSS is the designing part, behaviour is the actual programming. The most important part in this Dream Programming Tool's behavioural implementation is choice. I should be able to program in whatever language I feel like that day. Fancy a cup of JavaScript? Maybe I'd play around with Python. Or perhaps I'd prefer all that web-programming with PHP. The more choices the better.

Now, is this all just a dream? Well, no, actually it's not. There are already dozens of implementations out there. And all of them are open source. This is both a good thing and a bad thing. The good thing is it's free and, hey, the source is open. The bad thing is this brings out an old open source conundrum: too many projects of the same nature brings down the overall quality. So among the dozens of these current implementations, none of them provide an actual 100% application development environment like the one I described above. But this of course can and will be fixed with time. So let's see then what is the current state of choices available?

Mozilla The "granddaddy" of XUL, Mozilla, is still a web browser, not a 'XUL Runner' which means even if Mozilla is the best available implementation of structure/presentation/behaviour/localization separation, I still need to download the whole Mozilla browser to build applications with it. And this tosses out of the issue of deployment entirely. Mozilla is currently only in planning stage for a stand-alone XUL runner.

Other implementations All other choices are basically built using Java, so the cross-platform issue is solved. The best I've seen is SwiXML/SwixNG - they use XUL on Java, but with no scripting technology, and no CSS implementation. The only choice with scripting technology (Python) built-in is Sulu, but it's already a few months old and it's Sourceforge project page is dormant (0% activity).

Now, since all the technology is already available, it's all up to the programmers. They've already implemented XUL in Java, they now only need some kind of CSS parser to translate CSS definitions to the Java look and feel. As for scripting, there's Mozilla's Rhino for JavaScript and for Python, there's Jython. So all we need now is a sensible programmer to stitch it all together...

Trackbacks - 0 trackbacks

Click here for trackbacks.