Chronicle of the Xul Revolution
In the new Thinlet and SwiXml Titan Interview series I will interview the movers and shakers of the Thinlet and SwiXml world. To kick off the series let's all welcome Kate Rhodes.
Q: Can you tell us a little bit about yourself?
Kate Rhodes: I'm a self-taught programmer, independent software developer, serial entrepreneur, and an occasional musician with a Japanese nickname. I love to learn new things, solve new problems, and write open source applications.
My most recent projects are Caterpillar and Aspirin. I helped with some research and writing for Professional Java Tools for Extreme Programming and I'm working on a new book about Swing development with SwiXml.
Q: How did you stumble onto the Thinlet XUL toolkit?
Kate Rhodes: I was reading someone's blog and there was this entry talking about this really cool tool that converted XML to a GUI. It went on about how small and fast it was. I went to the Thinlet site then googled for more info and came across a whole slew of blog entries from java developers who were similarly enthusiastic about it. I think most of them were more interested in the idea itself and hadn't actually used it but I thought it was worth checking out so I downloaded it and started playing around.
Q: How did you get started on Caterpillar?
Kate Rhodes: Well, there are a lot of great blogs out there and actually going to the pages of all the ones I like to keep an eye on was just not feasible. I had been using Radio's aggregator a while before but I'd stopped using Radio. All of the other aggregators out there are essentially e-mail clients that check feeds instead of mail servers. Either that or they're web based. The web-based ones never had enough information on a page and the e-mail clones always had too much. It drove me nuts. I know people love some of these clients but they never satisfied me. I wanted something that didn't require me to visually parse folders and figure out for myself which feeds had new entries and which didn't. Neither did I want something that took up the screen real estate that my browser window did. I wanted something simple and small that could just run in the background, be mostly covered by other windows and yet still allow me to glance over at it and see if there's something new.
When it came to actually writing it, I wasn't about to deal with the horrors of traditional Swing coding and the WYSIWYG Swing creation apps like NetBeans always annoyed me because they had huge blocks of code that I couldn't touch. God forbid someone without NetBeans should try and edit it. If you did, you'd loose the ability to ever edit it in the WYSIWYG again. So I used Thinlet.
Q: Can you tell us some challenges you faced building Caterpillar 1.0 using Thinlet?
Kate Rhodes: At the time, Thinlet was one nine-thousand-line core class and another class that extended java.awt.Frame. It wasn't even remotely object oriented. You couldn't add a listener to anything, dialog boxes could not move beyond the bounds of the initial window, stuff like that. The biggest problem of course was the lack of object orientation. At Thinlet's core was an undocumented multidimensional array that contained all the properties of all the widgets you'd rendered from your xml. So, there was no hope of ever adding a Listener to something, or extending one of the widgets, or anything like that. You got the features that were provided and absolutely nothing more. I hear it's a little better under the covers now but I haven't really checked.
But it wasn't all that bad. Thinlet is, and was, an excellent toolkit. Itís really simple to use, it has almost all the widgets you could ever want, and as long as you didn't need anything complex in your UI you'd probably never be concerned about it's limitations.
Q: Was Caterpillar your first Thinlet app? Can you highlight some of your other apps built using Thinlet?
Kate Rhodes: I think Caterpillar was my first Thinlet app. I've also written a simple ServerWatcher app that watches a keeps an eye on your web servers to let you know if they're down or not. While at Virage, I also wrote an app that allowed developers to execute a variety of commands against an XML gateway to a search engine. It ended up being very useful and I started adding more and more features until it eventually started to become a little unmanageable with Thinlet. By that time I'd encountered SwiXml so I rewrote it with that.
Thanks Kate Rhodes. Check back next week for the second part of the XUL Titan interview with Kate Rhodes discussing why Kate rewrote Caterpillar using SwiXml and how SwiXml differs from Thinlet, what's her take on adding scripting or CSS-like styling to SwiXml, future plans for SwiXml and much much more.
|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|