Day 24 – Yule the Ancient Troll-tide Carol

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:


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, 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!

13 thoughts on “Day 24 – Yule the Ancient Troll-tide Carol

  1. Thank you all for this great Advent Calendar, for Perl 6 and for Perl in general.
    Merry Christmas to you guys!

  2. I’m so happy you’ve finally found some use for Camelia! Great work; you are very resourceful – who needs a proper logo when you can have a TROLL DETECTOR? Amazing.
    And happy generic gift giving winter solstice day to you!

  3. Thank you for this charming presentation of the Christian Gospel. Jesus really is the reason for the season after all! ;)

  4. speed of regexp in perl5 is approx the same as in javascript in Firefox, and 10 times slower than in Chromium/V8.

    You slowly kill Perl5 by not optimizing it.

    1. As long as people care about Perl 5, they will continue to optimize it. (And they have been.) Unfortunately, the design of Perl 5 makes it quite difficult to optimize in a number of ways. This is one of the reasons we started working on Perl 6; there’s just a lot of historical baggage you can’t fix without breaking backward compatibility in several ways simultaneously.

      1. is
        integrated in python and ruby, but still no perl5 integration

        > can’t fix without breaking backward compatibility

        it would be ok if the least possible breakage was done, so that it would be possible to convert perl5 code to perl6 without complete rewriting to new language.

  5. I like this posting and its message. It explains the culture of the Perl community very well. We learn that almost anything can be hacked in positive ways. TIMTOWTDI thanks to the Perl ethos.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.