James Williams on Groovy Swing
Q. James, you are the creator of SwingXBuilder, what can you tell us about it ?
A. It's awesome, everyone should use it. Seriously though, it's an extension of the core SwingBuilder in Groovy and a product of 2007's Google Summer of Code. Because Groovy can be really concise and the builder pattern makes UIs easy, it only made sense that the cutting-edge stuff have a compatible Groovy implementation. Filthy Rich Clients and Romain inspired it a lot.
Q. How did you get involved with Google's Summer of Code? any pointers you can share for others to try it out ?
A. When it first was announced in 2005, I thought it was really cool but was ineligible because I wasn't a student(requirement of the program). I didn't enroll in grad school until that fall. 2006 rolled around and it was in the back of my mind but none of the projects or suggested ideas seemed interesting. By the time 2007 rolled around, I was deep into Groovy and Swing. SwingBuilder was there but I found myself without a path to the really cool stuff without delving into Java-like code.
Hmmm....pointers....If I might be cliché for a moment, I'd say be like Nike and "Just Do It." No matter how out there you idea may be, bounce it off a couple people in the community and they'll let you know what flies, what doesn't, and help you refine it. If you can, become involved in the community before applying and I don't mean just as the list of participating organizations is published. From 2006 to 2007, most orgs were the same, find an area that you are truly interested and look into it. Basically scratch your own itch. Your genuine interest will be motivates you for those times that you find yourself bored and wanting to do something else.
Try to set more deadlines that the official evaluations. Attend a BarCamp or two and present. You might do great, you might sink like a stone but you'll build buzz and gain "customers" c'est-à-dire people who buy in to your vision. It's easier for a product with no customers to die that one with them. Attending a BarCamp or even just watching on the forums will give you different perspectives and get you out of your developer's cave where the echos make everything sound like a good idea.
There are only a limited number of spots. Just because you were rejected doesn't mean it shouldn't be pursued. Do it anyway. And whatever you do, if you have a project that is something radically different that status quo(new UI system, totally new app/redesign), you MUST blog and evangelize it. OFTEN.
Q. So how did you get into Groovy ?
A. I was working as a developer for a national healthcare services company, praying not to be cast down into 'The Pit' (it was as bad as sounds), and this kid named Vlad [Vivien] comes up to me and says "dude, there's this language called Groovy that's like Ruby but it's not...." Unfortunately you can't see my mimicking his mannerisms and I admit that the exact words might have been changed for dramatic effect. Anyways, he also invited me to the Tampa Java User's Group meeting(of which he's the organizer, yes I like parentheticals) coming up that month. I ended up not going to the JUG meeting but I did look into Groovy and have been hooked since.
Q. Is groovy a recurrent topic in the Tampa JUG then ?
A. There's a small Groovy contingent so there is a bit of frequency but not every other month or something like that. Groovy is like Java after all...
Q. You recently blogged about Java3DBuilder, can you tell us what are your plans for it ?
A. It's very proof of concepty, part functional piece of design, part Builder practice right now. No real plans as of yet... just kinda going with the flow
Q. Do you use groovy in your daily work ?
A. A bit. There is an internal client application that's written in Groovy and uses SwingXBuilder for UIs. But that is essentially in maintenance mode. Other than that, I do some small prototyping here and there and one-off scripts for data import or export.
Q. What tools do you use to fix your Groovy needs ?
A. Before I got addicted to IntelliJ, I was all about Gant from the commandline and gedit(text editor). IntelliJ's code completion is something that is very hard to wean yourself from. I use Netbeans on occasion.
Thanks for the interview James!
James Williams is Senior Software Engineer at Spatial Networks, Inc. Outside his day job, he specializes in desktop Java and rich Groovy clients. He is the creator of the SwingXBuilder for Groovy and still works as a committer for the language hoping to continue to make Groovy a fun way to code in Java. He has Bachelor's degrees in Computer Science and French from Eckerd College in Saint Petersburg, FL. He fondly remembers the ill-fate Adam Computer with its very audible cassette tape storage drive and Buck Rogers: Planet of Zoom as his first computer and video game.