Preface
A few months ago I enjoyed a pleasant dinner with Marjan Bace, Grand Poobah[1] at Manning Publications, the company that printed the book you now hold in your hands.[2] Eventually the conversation turned to Joseph Campbell’s Hero’s Journey as it might apply to nonfiction, technical books. The basic concept is that a Hero is called to Action, encounters various Forces arrayed against Him (or Her); Defeats them; wards off Temptation; is Transformed by the journey; and eventually returns Home Triumphant.[3] Some publishing companies strongly recommend that their books follow that model, with the reader as hero.
1 His actual title is Publisher.
2 In print form, on a tablet, or whatever.
3 In case you don’t want to read the original Campbell, the Wikipedia page at http://en.wikipedia.org/wiki/Monomyth summarizes all 17 (!) stages.
Marjan’s idea, however, was that sometimes it isn’t the reader who is the hero; it’s the technology covered by the book. In the case of Making Java Groovy, I interpret that to mean that Groovy is the hero. Where does that put Java? Not as antagonist, surely; the whole point of this book is that Java is already your ally, and that adding Groovy makes it better. Groovy and Java are like Frodo and Samwise Gamgee, headed into the black depths of Mordor, battling privation and despair, desperately trying to defeat the horrible programming challenges that await them, as well as any orcs, Nazgûl, or clueless managers they might encounter along the way.