Here at the end of megayears of human adventure, we schedule a silent night to stop time, once again awaiting the next advent of the answer to our questionable venture. Are we there yet? After a gigayear or so of slogging from slime to silicon mercifully forgetting (most of) the unmerciful past, and the scars left by unnatural nature upon our pedigree, we now remember to remember the future once more. Are we there yet? So in this month, 26 year-moments after the advent of Perl, (including 13 year-eternities of precocious brat sisterhood) our little family celebrates, 24 tales at a time, its victories in the struggle to find our way home. Are we there yet, Daddy, are we there yet? We follow after all those who wander but are not lost: We follow Abraham, looking for a city because it isn't there yet; We follow Strider, guarding the hobbits who will redistribute the future; We follow Magi and wizard, scholar and explorer, saint and scientist. I wonder as I wander out under the sky...whether I'm lost yet... But wise man or hobbit, we must all take that journey in the dark, groping ahead for the path to better air and a little hope, following the encapsulated starlight past monsters and chasms out to a land where the weary can rest, and be healed of grief. "Wait, what do you mean, I can't go there?" —Gandalf We must all wander in this desert for forty years, burying the bones of naysayers and yaysayers alike, so that their children can someday cross the Jordan into a land flowing with milk and honey and fancy new phones! "Wait, what do you mean, I can't go there?" —Moses We carry these old stories to the future, cadences to chant over the confusion of the road, backpacks full of epics, pockets stuffed with tales, leaving our own litter of anecdotal evidence behind us. You haven't heard some of the good ones yet. So kids, along with the old stories, pack a few new tools, light but powerful tools that will help you and help you help us. The lightest tools, the most powerful tools, are ideas, so pack lots and lots of 'em. I'll wait here while you do. I'm here yet. Which means I'm not there yet. Hurry up! Pick some good friends, and let some good friends pick you. Take turns waiting patiently, running impatiently, or walking hopefully, crawling hopelessly, standing up yet again defiantly. Or woozily, that works too. Be the protagonist some of the time, yet not all of the time. Trust your journey to provide you with new companions; trust your new companions to provide you with your journey. Be prepared to say your eternal hellos and temporary goodbyes. (No one's ever ready for the temporary hellos and eternal goodbyes.) And I'm not sure I want to be there quite yet. Enjoy the companions your journey gives today, for life is bittersweet. Enjoy the bittersweet songs and the bittersweet beer. Enjoy the bitter fights and sweet hugs. And, yes, enjoy the resulting bruises, but not too much. Enjoy knowing that you're not there yet. Welcome, my friends, to the here, and to the not-there-yet. Welcome to the clan's quantum superposition of joy and grief and longing. Welcome to our ongoing effort to steal more of that Promethean fire that burns too fast yet never fast enough to fit the firepits of our lives. Are we getting warmer yet? As they say, "Give a man a fire..." Hold that thought, some breaking news... This just in: Fire from heaven is now free and open-sourced?! Well, huh... Seems a blogger heard some angels singing popup advent adverts in the cloud? Hmm...better do some fact checking...hang in there...tum tiddly tum... Darn flakey connection...almost there... Well, hey, whaddya know?! The physicists figured it out. The whole universe has just finished compiling without error... Now they're looking for someone to debug the silly thing; Hey, I know, I'll just use the Perl 6 test suite. [...now you have thousands of problems...] Did you say something? (louder) Does sanity test #1 pass yet? What's the output? The road goes ever on and on, Over the river and through the woods, You take the high road, and I'll take the low road, We're all bound for the Promised Land. [TimToady gets blessed and starts directing the choir of Perl Pilgrims.] We're marching to Zion, Beautiful, beautiful Zion, We're marching upward to Zion, that beautif— You can't go there. Wait, what do you mean, I can't go there? Bugfix #1: kill all the bad poets. Aw...crap...
When you open your gift on Christmas Eve, you discover a mirror in which you can see yourself. On the mirror is etched the statement:
SUBJECTS IN MIRROR ARE CLOSER THAN THEY APPEAR
It doesn’t look at all like a car mirror though. It seems quite flimsy, in fact, though it’s made of some rather tough material that seems to defy breakage despite your best efforts as a two-year old…
“WTF? How did the mirror show me a picture of my younger self?”
You bend the mirror this way and that, and it shows you not just embarrassing views of yourself in the past, but also pictures of yourself as you might be someday in the future, both good and bad.
Suddenly you feel a strong tug on your innards, and your vision shifts; instead of looking at the mirror from the outside, you’re looking at it from the inside. You can still see all the same reflections of yourself, but you also see other people, still outside the mirror, looking in at you as a picture of their own younger or older self.
Apparently, you’ve been sucked into a hyper-mirror, in an accidental sort of way.
You are now a member of the Perl 6 community. We (including you) will now give you (including us) the gift of ourselves as we would like to be someday.
In other words, you have been hacked! Borged, even! But you might learn to like it.
Perl is not just a technology; it’s a culture. Just as Perl is a technology of technological hacking, so too Perl is a culture of cultural hacking. Giving away a free language implementation with community support was the first cultural hack in Perl’s history, but there have been many others since, both great and small. You can see some of those hacks in that mirror you are holding. Er…that is holding you.
The second big cultural hack was demonstrating to Unix culture that its reductionistic ideas could be subverted and put to use in a non-reductionistic setting. Dual licensing was a third cultural hack to make Perl acceptable both to businesses and the FSF. Yet another well-known hack was writing a computer book that was not just informative but also, gasp, entertaining! But these are all shallow hacks. The deep hack was to bootstrap an entire community that is continually hacking on itself recursively in a constructive way (well, usually).
Perl 6 continues this fine tradition of “positive trolling”. You know, in the olden days you could say “troll” to mean something happy and boisterous, as in “troll the ancient yuletide carol”. That’s the kind of trolling we do, especially here in the Advent Calendar (one of the finest examples of the community recursively constructing itself). There are many other examples as well.
If you look at perl6.org, you will see several cultural hacks right there on the front page. The most obvious one is the butterfly, Camelia, but she represents a number of other hacks through image and words. As an image, she says:
- Perl 6 is fun.
- Perl 6 is organic.
- Perl 6 is attractive.
- Perl 6 is about clarity.
- Perl 6 is personal and relational.
- Perl 6 is a result of metamorphosis.
- Perl 6 is both primitive and elaborate.
- Perl 6 is friendly to women and children.
On the flip side, the image also says:
- Perl 6 is not about sterile corporate image.
- Perl 6 is not achingly beautiful, just pretty.
- Perl 6 is not ill-behaved like a camel.
- Perl 6 is not friendly to grinches.
It is on this visceral level that Camelia has turned out to be a most useful cultural hack, that tells us with a fair degree of certainty who the grinches are who want to steal Christmas. Every community has to deal with an influx of potentially poisonous people, and having an obvious target like Camelia to complain about induces such people to wave a flag reading: “Hey, I’m a troll. Hug me.”
And that’s another cultural hack in the Perl 6 community. We believe in hugging trolls. Up to a point.
You can see this in Camelia’s words, when she says you can participate only if “you know how to be nice to all kinds of people”. Trolls are people too, and we know how to be nice to them. (When we are not nice to trolls, it’s because we decided not to be, not because we don’t know how.)
You see, some of us were trolls once too. As in our mirror metaphor above, we are all looking at each other as we travel together in our journey through life. Many of us hope to end up better people than we are today; we also realize we were worse people in the past. But there are many people who have not made that commitment yet to get better. Some of these uncommitted folks are currently trolls. Some trolls are evil, but many are simply ignorant of a better way.
So when we say we hug trolls, what we really mean in technical terms is that we don’t pay much attention to your position when you join us, however odious that position might be. Instead, we look at the first and second derivatives of your position. To give us time to differentiate, we typically perform a bit of verbal aikido to let you express some of your deeper yearnings while you think you are merely tormenting us.
If your position is bad but your velocity seems to be good, we will certainly try to keep you around until your position is good as well. You want to be good. We can help with that.
If your position is bad, and your velocity is bad, then we’ll look for signs that your velocity might be getting less bad, which is to say you have a positive acceleration. You don’t yet want to be good, but perhaps you want to want to. We may be able to help with that too. If the acceleration stays positive, eventually the velocity and position will come around too.
In short, there are grinches, but some grinches will repent. We want to give them the chance. Sometimes this involves singing when the grinch steals all the presents.
But some of you grinches will never repent. Did we mention that Camelia has a 3-meter wingspan? And that she likes to suck the brains from unrepentant grinches? Not only that, but Camelia’s larval form was a camel, so she can spit too. You really, really don’t want to have Camelia sucking your brain and then spitting.
But most people don’t need to have their brains either sucked or spat. Often they just need them washed. Once people catch on to the meta-philosophy of Perl, they usually find the search for technical and cultural convergence to be a Great Adventure, and much more fun than simply making people unhappy, which is too easy.
We hope you like your new hyper-mirror, and we hope you’ve enjoyed (or will enjoy) reflecting on some of these posts. Please have a Great Advent to a Great Adventure.
Fa la la!