Chronicle of the Xul Revolution
Welcome back to the Xul Titan Interview series. Today let's welcome Xul Champion of the Year 2003 and SwixML and Theodore mastermind Wolf Paulus.
Q: Can you tell us a little bit about yourself (short bio)?
Wolf Paulus: I'm a software developer focusing on Java, XML, Mac OS X, wireless/mobile embedded-systems and Open Source technologies. In my daytime job as Software Development Manager and project lead with Verity Inc. I'm working on the LiquidOffice platform, an innovative document routing and workflow solution. I worked in St.Peterburg, Russia, leading a team of Russian engineers creating smart bots and in Frankfurt Germany, helping Deutsche Bank to develop a client-server electronic banking applications. Almost 15 years ago, I received a master's degree in computer science from the University in Paderborn, Germany. Today I live with my family in San Diego, California.
Q: How did you stumble onto the Thinlet XUL toolkit?
Wolf Paulus: I was working on an embedded device that needed some kind of administration console to allow for some remote configuration. Creating an HTML interface and putting a complete Web server on that device made little sense and would have required to much processing power and memory. Creating a small client application was a viable alternative. While looking for ways how to build a nice but small footprint java client I discovered Robert's Thinlet project.
Q: How did you get started on Theodore?
Wolf Paulus: After writing my very 1st Thinlet XUL descriptor I thought immediately about making this work more efficient and visual, the idea for an Thinlet Editor was born. BTW, if you say "Thinlet Editor" 10 times really fast, it sound almost like Theodore - this is how I came up with the name.
Q: Can you tell us some challenges you faced building Theodore using Thinlet?
Wolf Paulus: Way back when I started Theodore, I actually had to tweak the Thinlet code at a couple places. Fortunately, Thinlet got a lot better over time and now you can just plug in a new Thinlet.jar - well, if the XUL syntax remains backwards compatible that is. Anyway, since the Thinlet core is just one huge class, making small adjustments was challenging.
Q: How did you get started on SwixML?
Wolf Paulus: Back in December 2002, at Cardiff Software we wanted to build a Java-based rich-client application but we didn't feel comfortable using Thinlet. Manly because of the non-native Look-and Feel and the extent-ability issues. Don't get me wrong, I think Thinlet is great I like it a lot. It was just not the right toolkit for the things we wanted to do. We were looking for something as lean as Thinlet but more OO and based on Swing. I definitely would have preferred to use something pre-build and I spend quite a while looking around. We tested almost every XUL motor we could find but I ended up writing SwixML.
Q: What's your take on adding CSS support to SwixML for styling using rules?
Wolf Paulus: Adding some kind of CSS to SwixML came up a couple of times in the forum mailing list I think. It's not really high on my list. One can easily overwrite a swing widget and register it instead of the original widget. I.e. in a recent project we extend a lot of the Swing widget and gave those a specific behavior and look. Then we registered the extended Widgets instead of the originals. The XUL descriptors still mention <panel ..> but it's not the JPanel that is instanced it's the MyJPanel class.
Q: Do you have a favorite scripting language for the Java runtime? Any plans for adding support for scripting to SwixML?
Wolf Paulus: I hate scripting. Seriously, Groovy is pretty cool and I wish we'd all learn form it and start using the Java VM in more creative ways.
Q: Do you have any plans of adding web-style form submission tags to SwixML? What's your recommended approach for data-binding for SwixML?
Wolf Paulus: I don't know how to answer this question politically correct. In my daytime job I'm working for one of the biggest players in the forms capture/processing arena. Moreover, Micah Dubinko (the XForms Guru) is one of my co-workers. Would spinning of a SwixML-XForms Viewer make sense - probably not. But I can imaging a set of pre-build components - build with SwixML - that would be useful building blocks for any sort of UI including forms.
Q: Any plans of supporting different UI toolkits such as SWT, wx4j or Gnome-Java, for example? Or do you plan to stick to Swing?
Wolf Paulus: SWT is always on the horizon. However, there are a couple things that I really don't like too much with SWT, having to deploy a huge and OS-dependent swt.jar being just one. Having models for UI widgets is just the right thing - in my view at least.
Q: Can you tell us how popular SwixML is? (e.g. How many downloads? Can you highlight some applications using SwixML? etc.)
Wolf Paulus: On average, the Swixml.org website has about 250 distinct visitors daily. The distributions gets download about 200 times per week. The Verity LiquidOffice Management Console is build with SwixML and Topologi has a product that uses it. I know about a couple other projects but don't know if they have been released yet. As I'm writing this, the top ten domains responsible for the most bandwidth consumption on the Swixml.org web site include callidussoftware.com, siemens.com, xerox.com, fja.de, and sulinet.hu
Q: Can you tell us how SwixML differs from alternative XUL toolkits for Java such as Luxor, Ibex (formerly XWT) or Thinlet, for example?
Wolf Paulus: SwixML is a lot smaller and faster than most XUL-motors. It's easily extendable. Since it's just a very thin layer on-top of existing GUI-widgets, Swimxl has a very small footprint.
Q: What's next for SwixML?
Wolf Paulus: The very near future will bring the integration of delegates and Layout capabilities will be improved I believe. Long term, we will be all working with .net and XAML ... just kidding Moreover, Franklin will eventually be released into beta-testing.
Q: What's next for Theodore?
Wolf Paulus: I hope to combine Theodore and Franklin into a common core. However, at that point Theodore wouldn't be an all-thinlet project anymore...
That's it. Thanks Wolf Paulus.
|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|