Today I had the privilege (or punishment?) of releasing Perl 5.15.6, the latest monthly dev release of Perl 5. Part of the Perl release tradition is to include an epigraph with each release. The epigraph is a quote of some sort that goes at the beginning of the release announcement.
I can’t find the first epigraph but if I had to guess it must be a quote from Tolkien accompanying one of the releases Larry Wall did. The source code for Perl itself is liberally littered with Tolkien quotes.
One of the reasons I wanted to do a Perl release was to have an opportunity to choose my own epigraph (weird motivation, but true). I had a few criteria in mind.
First, I wanted to choose a writer I respected as a writer, something I’d want other people to read. Second, I wanted to pick a new author (not Tolkien ;). My first inclination was to find something in one of the Kushiel Trilogy books by Jacqueline Carey, who is one my favorite authors, and probably not that well known in the Perl community.
One of the main themes in these books is love as a motivation for sacrifice. I think that the people who work on Perl are at least in part motivated by love. We have love for the language and for the community. We could all spend our time on other things like making more money, sleeping, or watching more TV, but we hack on Perl instead.
Unfortunately, finding a quote isn’t all that easy. It’s been a few years since I read the books, and I couldn’t remember any particular piece off hand. I tried using Amazon’s “look inside” feature, but I just couldn’t find anything. I started browsing my bookshelves looking for something else.
It finally came down to a quote from Matt Ruff’s Set This House in Order and the one I chose, from A Wizard of Earthsea by Ursula K. LeGuin. The Ruff quote was great, but it specifically refers to being born at age 26, and Perl just turned 24 (on December 18, 2011), so I thought that might be a little confusing. Maybe I can volunteer to release 5.19.6 in December of 2013.
The quote I did choose is:
Ged had thought that as the prentice of a great mage he would enter at once into the mystery and mastery of power. He would understand the language of the beasts and the speech of the leaves of the forest, he thought, and sway the winds with his word, and learn to change himself into any shape he wished. Maybe he and his master would run together as stags, or fly to Re Albi over the mountain on the wings of eagles.
But it was not so at all. They wandered, first down into the Vale and then gradually south and westward around the mountain, given lodging in little villages or spending the night out in the wilderness, like poor journeyman-sorcerers, or tinkers, or beggars. They entered no mysterious domain. Nothing happened. The mage’s oaken staff that Ged had watched at first with eager dread was nothing but a stout staff to walk with. Three days went by and four days went by and still Ogion had not spoken a single charm in Ged’s hearing, and had not taught him a single name or rune or spell.
I think this quote works on several levels. First, it reflects the difficulty of hacking on the Perl core’s C code. It’s some serious magic, and you won’t become a great mage all at once. Second, this same dynamic of slow learning applies to programming in general. It seems like great magic, and you wish you could master it all at once, but it takes quite some time before you’ve figured it out. This is actually one of the themes of all the Earthsea books, that mastery takes a long time, and that maybe you never really become a master. Instead, you just learn clearly how little you actually understand.
I feel like this with programming all the time. Even if I felt like I really “got it” I can always look back at my work a year later and see just how clearly I didn’t “get it” at all.
Unfortunately, choosing Ursula K. LeGuin probably doesn’t satisfy my desire to pick someone who might be new to people in the Perl community. Oh well, maybe next time!
I hope that in the future other Perl release managers will write blog entries similar to this one explaining the quotes they chose. I’m always curious what the quotes mean to the person doing the release, although occasionally they’re quite straightforward. I added an entry to the Perl Release Manager’s Guide asking folks to blog about their epigraph after the release.
Here’s looking forward to Perl 5.15.7 (and it’s accompanying blog entry).