Advent is a happy time around the Brunton household. To begin with, it means Christmas is coming. I'm a big fan of Christmas. Each Sunday of Advent, we invite a couple friends over and have dinner. Maybe light a candle on the Advent wreath.
But this year... this year it's looking like it may be the biggest Advent *ever*! And not just because we have babies in the house now. Tucked away at the end of his State of the Onion is the following tidbit from one Mr. Larry Wall:
"Now, anyone who has been following along at home knows that we never, ever promise a delivery date for Perl 6. Nevertheless, I can point out that many of us hope to have most of a Perl 6 parser written in Perl 6 by this Christmas."
Can it be?
Every time someone logs in to #perl6 and asks "when will it be done?" (this happens a couple times a week), there is always a collective cheer from the crowd of LambdaCamels hanging out there:
But nobody will ever say which Christmas.
Perl 6 Advent anyone? I'm thinking
This is not to mention Apocrypha, Apocalypses, and Exegesese. Maybe when it's all done, we'll turn it into the Perl Catechism.
I confess that I am, and have long been, a Perl resident alien. I have used Perl 3, 4 and 5 professionally for over a decade, beginning in tech support in Seattle, ending in application development in DC. But I have done so without ever becoming a citizen of Perl. I have never released anything on CPAN or participated in mailing lists and IRC. I have not written in a use.perl.org journal, and I have not attended a YAPC. I have just hacked away Perl in solitude, even when part of a development team.
But back in July, that all changed.
"I wonder," I thought, "how the various Perl 6 projects are coming along?"
So I svn'ed myself a copy of parrot and pugs (this was before #perl6 people converted me to SVK), and proceeded to build.
I built parrot first- though I ended up falling back to the tarball, never getting my bleeding edge checkout to compile all the way through.
Then I built Pugs. Ah, beautiful Pugs.
I think it was about ten seconds later that I was pasting some code from one of the Synopses into Pugs.
Lo and behold! It didn't work.
Not easily discouraged, I logged on to #perl6, and asked if I was doing something wrong.
Within ten minutes, I had a commit bit. If you have one, you know how easy this is to get, but if you don't you probably think it's a pretty big honor, like I did at the time.
Within a week, I had written several tests and updated several more test files.
Within a month, I had written my first Perl 6 script (ext/ca_wolfram.pl, if you have a Pugs repository handy).
Within two months, I had made small contributions to Pugs itself (added sprintf("%b",... to Prelude.pm, changed meta to META in Pugs.Prim, etc.).
I even asked a question on perl6-language.
And Larry-Frikkin-Wall-Himself actually responded. Larry Wall! To me!
Just this week, I have added Automata::Cellular version 0.1 to the Pugs repository.
And today... today I am writing a use.perl.org journal.
How did this all happen? Why the sudden change?
Well, I logged on to #perl6, and asked my question. In retrospect, it was kind of a dumb question, and I probably didn't ask it as nicely as I might have. But instead of being met with ridicule, silence, or any other unwelcoming derision, I was summarily informed that I had found an unimplemented feature.
Audrey then asked me for my email address, which I gave her.
She sent me a commit bit, told me to add myself to AUTHORS (what?!), and to then submit a test.
And now, on this day, I find myself a citizen of Perl. May there always, and forever be, more than one way to do it.