Miyagawa strikes again
On day three (read about days one and two), I spent most of my time socializing and networking rather than attending talks. Miyagawa spoke about deploying Plack web applications. After dismissing what seemed like all the available options (I was thinking it was going to turn into another Perl Sucks talk), he presented two that are rock-solid and production ready in his opinion: Starman and Twiggy appear to be the frontrunners, although FastCGI might make sense if only for ease of deployment. He also demonstrated some awesome debugging middleware that had never been unveiled previously, I think.
The Trout gets trouted
The keynote from Matt Trout was a highlight for sure. Like Larry Wall's keynote opening the conference, this talk focused on social issues in the Perl community. I certainly fit into all Matt's troll categories at various moments, but I swear he was thinking of me when writing the section on idiots because he and I have done that exact dance (though I doubt if he remembers). When I was learning about references and dereferencing, I struggled to understand things the way they made sense to him. Once I got it though, I was always happy to help with people where I saw the same thought processes I'd used when learning the topic. I'm sure when I helped out, Matt thought whatever I said was rubbish, but it's not just great minds that think alike. Who better to explain thing to dolts than the other dolts that have figured it out a little better?
Well, you might also want to keep noobs around so they can write documentation that makes sense to the other noobs. Unluckily, mst's convinced me to do just that. I'm currently revising perlopentut.pod - you can expect a patch on p5p and a post here within the week. Matt, take note: I draw the line at hosting YAPC in Halifax!
The final bolts of lightning
Len Budney presented an overview of some of the techniques Grant Street Group uses to squeeze all the performance they can out of Perl. I wished it could have been longer, I don't think I absorbed anything. Dave Rolsky presented a new module for easily creating email messages called Courriel (the official French word for email, which nobody uses).
I also presented my lightning talk, which shares a title with my blog post on the same issues: The Death of Tribal Knowledge. My slides, and bit of commentary on the talk are in this post. Even though it was only 5 minutes, I think giving this talk and being well received was the most rewarding part of the conference, because it proves that I have some credibility in the community. Or at least that the Perl community is nice enough not to throw tomatoes at the newbies, and that's not bad either! I hope I'll get another chance to attend YAPC and give a longer talk on similar topics. For example, I think psychology can inform computer science and programming language design in particular. This is interesting for Perl because the language is so flexible. If that interests you, http://evidencebasedse.com/ is a great read, and Mats Einarsen gave a talk on this at YAPC::NA 2010. Sadly, he wasn't able attend this year, so I've never met him in person.
Learning to cook Moose
The final day of my trip wasn't part of the conference proper - I attended a class by Dave Rolsky on Moose, the "postmodern" object system for Perl5. It incorporates many of the best leading-edge concepts in object orientation from Perl6, CLOS (Lisp), Smalltalk, and more. Moose uses the meta-object protocol to declaratively build classes - you say "my class has an attribute called X" instead of writing a variable, an accessor, and a mutator. This alone makes it much less verbose than Java. There are type constraints for validation, and roles act like traits or mixins, and are much more powerful than Java interfaces. Many of the Perl projects I've wanted to help with use Moose, and while I can cargo-cult with the best of them, not knowing much about Moose was slowing me down. this class provided some great examples to demonstrate how Moose works, and I feel much more confident in wading into some of those Moose-using projects now.
The conference was certainly a whirlwind, but I was able to meet several people I'd been working with on various projects, and gained exposure to the wider community. I had a great time, and I hope I can attend again in the future. There's plenty of buzz around new web technologies like Plack/PSGI, Dancer, and excitement about the future of the core of the Perl language. I have some small gripes, but the trip to Asheville was well worth it. Thanks for a great time!
Perl is dead. Long live Perl!