The Strange Loop conference is a unique software developer conference in St. Louis featuring excellent speakers and a wide variety of languages and technologies. This interview with James discusses his Strange Loop talk "Griffon: Swing just got fun again". James Williams (@ecspike) is a co-creator of the Griffon project which allows you to develop desktop UI applications in Groovy using Swing.
Strange Loop: Hi James, can you tell us a little about how Griffon got started?
James: Back in the Summer of 2007, Google and The Codehaus accepted my proposal for the Summer of Code to develop a Groovy builder for SwingX components. At that time, builders were mostly in Java and SwingXBuilder was a test to see if Groovy could dogfood it. During that summer, I had a lot of interactions with Andres Almiray(one of the other co-creators) who developed several UI builders and FactoryBuilderSupport, which allows builders to have richer interactions during the component composition process. Danno, another member of the original trio, back-ported those features into core Groovy and added some polish. Having noticed that we had a good kernel of an idea, late that year, we talked about a composite builder that would be a core part of the project allowing you to mix and match components from different (Swing-based) toolkits. The project organically grew from there into what it is today. We'll celebrate our first birthday in September.
Strange Loop: What state is Griffon at today? Should Swing developers look into switching now or is it still a work in progress? Is there IDE support?
James: I'd like to call it a very usable beta. There are things that are still evolving but Swing developers should look into switching now. Especially if they would like a cross-platform alternative to JavaFX. Netbeans 6.7 by far has the richest support for Griffon. It supports creation of projects, installation of plugins and execution of griffon commands. Next in the spectrum is IntelliJ which has basic Griffon project support in the IDEA 9.0 beta. The nod to Grails project directory structure makes it easier to port an existing Grails IDE plugin to support Griffon.
Strange Loop: One of the most interesting presentations I've seen on Griffon concerned simplifying the concurrency issues inherent in Swing programming. It's important to keep long-running tasks off the event dispatch thread in Swing but sometimes that code can be quite tedious. How can Griffon help?
James: Griffon exposes features from the SwingUtilities class to applications with the help of closures. edt, doOutside, doLater, and doInside to be specific. These closures bring the need to manage the Event Dispatcher Thread to the forefront. In this respect, Griffon provides a concise syntax to make EDT concerns easier.
Strange Loop: How is Griffon being used today? Is it seeing adoption? Can you point to some success stories?
James: Inspired from Grails, the original Groovy RAD toolkit, Griffon provides a means to quickly prototype desktop applications. The feedback I'm getting from devs is that they are using it to quickly scaffold user interfaces even if Griffon isn't an approved technology for the final version. It is also enticing disaffected Java Swing developers to come back home. PSICAT, a geological core sample categorizing app was ported from Eclipse RCP to 100% Griffon. Apache Jackrabbit also uses Griffon for some internal tools. Greet, our Griffon-based Twitter application, was uploaded to the Java Store shortly after it opened to developers.
Strange Loop: Where is Griffon headed in the future? What are some major items on the roadmap?
James: Our 0.2-beta is set to release on our first birthday (Sept 10th). It is scheduled to include richer MVC Groups support and addons, which are a sort of runtime plugin to add features such as database scaffolding. The GSQL plugin is a working prototype of addons. There's also a Griffon book, Griffon in Action, which will be released in March 2010. Danno and Andres are writing the book with Geertjan Wielanga. I've gotten an advance look at some of the finished chapters and was really energized by the hard work those guys are putting into it. You know what they say: "It isn't a real project until there is a book about it."
Strange Loop: Thanks James, I look forward to seeing your talk at Strange Loop!
Find out more about Strange Loop: