|
Chronicle of the Xul Revolution |
Welcome back to the XUL Titan Interview series. Today let's welcome KaXul/Uxul mastermind George Staikos.
Q: Can you tell us a little bit about youself?
George Staikos: I'm a professional and hobbyist software developer in Toronto, Canada. I have been involved with Linux and open source software for over 10 years now, and have contributed to many different projects, most prominently KDE. I also do consulting and develop software commercially, especially Linux and Qt/KDE related (http://www.staikos.net).
Q: How did you stumble onto Mozilla's XUL? How did you get started on KaXul/Uxul?
George Staikos: It's hard not to run into XUL. :-) Actually I have done plenty of work on Konqueror, the KDE browser. Some of my areas of focus include the SSL layer and Netscape plugin support. With Mozilla, we have a new component model and plugin model and this has caused some problems for Konqueror. We don't fully support the new model in Mozilla (XPCOM and associated technologies). One thing that was relatively straightforward to implement in Konqueror was support for the sidebar modules that Mozilla has. I implemented support for HTML sidebar entries, but soon discovered that many of the sidebar plugins are written in XUL. I picked one (the Google plugin actually), and had a look to see how hard it would be to make it work. What I saw made me think of exactly something I already had available to me - Qt Designer files. Designer is a GUI tool for building user interfaces. The files are stored as XML and converted to C++ at compile time, or interpreted at runtime. This was a perfect match. So, I started to write a tool to convert the XUL XML files to Qt Designer files. It only took a few hours and I already had much of the UI displaying, which was very encouraging. The next step was interaction - the Javascript bindings. This was very convenient because Rich Moore had already written runtime Javascript bindings for Qt, called KJSEmbed. It took another 20 minutes to hook this in, and a bit of hacking to get the bindings to look like XUL's, and I had a functional demo, which I called Uxul ("usual" - meaning "it's usually this easy to make powerful KDE applications"). I split off the engine into a library and called it KaXul. ("casual", or, what I really meant "KDE's Advanced XUL").
Q: Can you tell us some challenges you faced building KaXul/Uxul?
George Staikos: The amazing thing about what has been done so far is that there was no challenge. It was all trivial! The real challenges were tackled in writing Qt Designer, KJS, KJSEmbed, and KHTML. I just glued everything together. There is much more glue to go, unfortunately, and there are some challenges ahead. I have not integrated CSS or RDF, not all the widgets are implemented, and there is still work to do on the script bindings. We already have an RDF and CSS implementation so that should be fairly easy to integrate, but some of the widgets may be quite complex. With KaXul, native Qt widgets are used, as opposed to the rendering that Mozilla does. This poses a bit of a problem since Mozilla can do all kinds of painting tricks that may not be supported in Qt yet. The benefit, however, is that KaXul is -fast-.
Q: Can you tell us what KaXul/Uxul can do today? What works and what needs to be done?
George Staikos: I have shown some demos of various working applets, and actually most of the important widgets are implemented. A simple form based applet should mostly work, but most of the styling and more complicated widgets and data manipulation may still not work.
Q: Can you use KaXul/Uxul as a Konqueror browser plugin?
George Staikos: Shortly after I split the code into the library/application design, Zack Rusin wrote a KPart which loads and executes XUL inline. KParts are effectively Konqueror plugins, so yes, it's quite possible. However KaXul is far from complete, so it is not particularly useful as a plugin yet, in my opinion. One real benefit we have seen is that there is now support in KDevelop for writing XUL apps, and KaXul, via the KPart, is used as a preview/thumbnail tool.
Thanks George Staikos. Check back next week for the second part of the XUL Titan interview with George Staikos discussing the state-of-scripting, SuperKaramba, XML for UIs in the KDE world, the future of KaXul/Uxul and much much more.
Links:
Please send comments on our web pages to our public xul-talk mailinglist or to a member of our web team. | Copyright © 2003, 2004, 2005 Open XUL Alliance |