The book you’re holding in your hands went through a lot of iterations before it reached its final form. We’re not referring to the editorial process, but rather to the deep relationship it has with the topic it discusses: the Griffon framework. Both evolved at the same time almost from the beginning.

On a peaceful October afternoon back in 2007, Danno Ferrin, James Williams, and I (all members of the Groovy development team) had a very productive chat over Skype about the future of Groovy’s SwingBuilder—an enabler for writing desktop GUIs using Swing as a DSL. We recognized the potential of mixing and matching different builders to write richer UIs, but the current syntax wasn’t pleasant to use. We drafted a plan and got to work on our respective areas.

Fast-forward to JavaOne 2008, where the three of us got to meet face to face for the first time. Joined by Guillaume Laforge, we hatched the idea of what was to become the Griffon framework. We knew that Grails was making waves in the web space, and we felt the need for a similar outcome in the desktop space. Cue the light-bulb moment: we agreed that creating a desktop framework that stuck as closely as possible to Grails would be the way to go—although we didn’t have a name for it yet.

Danno went back to his batcave after the conference and in a matter of weeks bootstrapped the framework by forking Grails and removing all the webby stuff that was not needed. Then he grafted in the most important pieces of Griffon’s architecture: the UberBuilder, the MVC group conventions, and the application life cycle.

We finally had something tangible. James picked the name and we went public with the project on September 2008. The initial reaction from the community was so positive than in a matter of months work on the book began. And this is where both projects got intertwined.

Together with Danno and Geertjan Wielenga, we wrote the first part of the book. We went to work on the framework, and then we came back to the book when we stopped to rethink where we were going with the framework. This kept going for months: hacking some code, writing a few pages. In the meantime, we received plenty of feedback about both projects. A particular advantage of this setup was that we were able to address the needs of users and readers and thus save time, the most precious resource for an open source effort.

Eventually Geertjan and Danno reduced their contributions, and my coauthor and good friend Jim Shingler joined the project. Being an early adopter of the technology plus a seasoned Swing developer meant he was the right person for the job. And he didn’t disappoint. Thank you, Jim!

All this leads to where we are now, with you reading these pages. During the time it took to get the book into your hands, we painstakingly revised its goals and the framework, making sure both were kept as accurate and fresh as possible. Despite what the naysayers have said for years—that Java on the desktop is no longer relevant—the current situation couldn’t be further from the truth. Griffon has been used to write applications that manage patient data, process the data required to manage the railroad schedule of an entire country, and even talk to a satellite in space!

It’s our hope that you’ll find the book to be the best resource for starting to work with this technology. Keep it close as a reference when you’re in doubt about how to use a particular feature.