Breaking the Fourth YAPC

This year I attended my fourth YAPC.  As always, here are my thoughts.  This time around, let’s start with ...

THINGS I LEARNED AT YAPC:

  • Gamera is full of meat.
  • lestrrat has a Git repo addiction issue.
  • Fugitive is so awesome it should be illegal.
  • “Specs” is short for “speculations.”
  • Honey badgers are assholes.
  • If you step on your video cord, the flow of photons is inhibited, because it’s all made of tubes, and you’re squishing one.
  • Belkar is stil pretty funny even if you don’t know who he is.
  • The most important thing is for Perl to do something.
  • Ovid doesn’t like pies as much as his slides would have us believe.
  • A French redneck is called a “plouc.”
  • Prolog should demand a paternity test.
  • You can make a Honda Accord last a long time.
  • Perl 6 is not vapoware; it’s geyserware.
  • The British did not use base 60 to measure ankles.
  • SawyerX is VMBrasseur’s patronus.
  • Camelia, laughing, spreads her wings.
(To be fair, I knew that first one already.  But it’s always good to have fading knowledge refreshed.)

The Venue:  I thought this was the best YAPC yet in terms of venue.1  It was a gorgeous hotel, and the rooms—I didn’t stay there myself, but I visited one—were almost insanely spacious.2  The bathrooms were also fairly insane: immaculate, huge, with marble everywhere—it was like taking a leak in a palace or something.  The food was good, there were plugs everywhere (a perennial problem at YAPCs), and I did not fail to get onto the hotel wifi once ... not one single time.  That’s fairly amazing.

If I had to come up with a complaint, I would say I had a hard time getting comfortable in most of the chairs.  But, I mean, come on: at this point I’m grasping at straws.  Umm ... what else?  I did get cold once, but mainly I was thankful they had the A/C blastin’ to combat the almost-ninety-degree heat outside.

I didn’t stay at the hotel because I brought my family, met my kids’ grandparents and aunt in Salt Lake City, and we rented a house.  The hotel was literally half a block from a light rail station, so I could easily ride the train in for the day stuff, and I drove in for the night stuff and parked in the free parking garage under the hotel.  I mean, seriously: it’s hard to imagine a more perfect place.

The Buzz:  As you might imagine from Larry’s announcement of imminent Yuletide arrival, the buzz this year was all about Perl 6.  There were several talks on the topic, and I attended at least 4 of them.  Much of what was discussed I found very exciting.  Over the past couple of years, I’ve become a bit jaded on the topic of Perl 6, but this year’s YAPC revitalized me to a certain extent.  Many of the talks (particularly the back-to-back double whammy of Bruce Gray and Curtis Poe) reminded me exactly why I got so excited by the damn thing in the first place.3  For the first time in several years, I’m actually excited again by the possibilities inherent in Perl 6.

It’s not all sunshine and roses, however.  There are still several areas of Perl 6 that disturb me:

  • The disposition of and/or equivalent to CPAN for Perl 6 seems to still be up in the air.
  • Interoperability between Perl 5 and Perl 6 (e.g., the ability to use Perl 5 modules in a Perl 6 program), which could totally moot the previous problem, doesn’t seem to be a reality yet.
  • Macros seem like they’re not going to make it into the initial version of Perl 6.
  • Larry said some frightening things about the removal of context sensitivity from Perl 6 that I need to research and digest more before I panic.  But it was enough to worry me.

I think the first two points are self-explanatory.  The third one I threw out at lunch on Wednesday, and tried to explain why that mattered to me by saying that the ability to create dialects was one of the things I found most enticing about Perl 6.  To which Randal Schwartz wryly replied, “to the horror of everyone who works with you.” Which, on the one hand, is a fair comment.  But, as I tried to explain then,4 we already have a bunch of dialects in Perl 5: from the simplicity of adding a few more functions such as List::Util and List::MoreUtils to all-encompassing efforts such as perl5i to practically standard things such as Moose to bits of insane genius such as :IO::All and IO::Prompter.  And I’m not even getting into the ones I absolutely detest, such as SQL::Abstract.  Although that beautifully illustrates my point: here’s a dialect whose syntax is infinitely worse than what it attempts to model, but it’s not because its authors were deficient in any way; that’s just the best you can do with Perl 5.  Now, I’m still not convinced that you wouldn’t just be better off writing SQL, but I am convinced that you could do a much better job on something like SQL::Abstract with Perl 6.  But we deal with the ugliness because that’s the best you can do, and now it’s deeply embedded in the most popular ORM for Perl and we all just accept it, ’cause, what else can you do?  Crushing that sort of ugliness is what I feel is the promise of proper macros in Perl 6.

The last point ... well, as I say, I want to do some more research before I start a proper rant or anything.  Just let me say that I’m one of those people who find context integral to what makes Perl Perl.5  I suppose you could accuse me of being one of those “fear of change” people—after all, I have gone on record as saying that I’m irked that we lost a perfectly good concatenation operator just because all the other languages were jumping off a bridge.  But let’s not forget that I’m the guy who pimped Method::Signatures, the guy who thinks Moose doesn’t go far enough syntactically, the guy who is still peeved that smartmatch is “experimental” ... truth is, I friggin’ love change.  But there’s still a set of core principles that you need to hang on to no matter how much you evolve and grow.

But, overall, all the excitement over Perl 6 was pretty awesome to see, and I found it infectious.

The Keynotes:  I’m not going to include the “States of the Velociraptors,” since that was a series of small talks, so it didn’t really feel like a keynote.  That leaves us 2 keynotes, which is a 67% reduction in number of keynotes over last year, which I’ll take as a mostly good thing.  Of course, the number of mostly-non-Perl-related keynotes increased by 100% over last year, which seems a bit worrisome, although I have to admit that both keynotes this year were pretty interesting.6

The first was from Seth Johnson, and it was mostly about social engineering, and it was fairly entertaining.  I’m not sure I got much connection back to Perl, but it wasn’t a waste of my time or anything.

The second was from Phil Windley, and it was about the Internet of Things, and a language for dealing with that which happened to be implemented in Perl, but I found that a tenuous connection at best.  This talk was little less entertaining, but a lot more interesting factually.7  At first it threatened to be too abstract, and then it threatened to be too detailed, but overall it provided several cool insights into what is likely the next big challenge for the Internet.  Excellent bibliography at the end too.

The Extras:  Once again, Bad Movie Night and Game Night were our social events of choice.  The Bad Movie BOF this year was composed of this past December’s live RiffTrax Santa Claus, including the bizarre short “Sugar and Spice,” and a classic MST3K from the Joel days: Gamera vs Guiron.  I’d seen both before, although not the live version or the short for the former, but they were still great, and we had a great time.  Plus someone ordered a lot of pizza for only a $3/slice contribution, and Wendy shared some wine from Perl, Germany: both were quite tasty.

On Game Night, we played a massively insane nine-person hand of Fluxx, which I don’t think made it more than twice around the table before a fellow named Peter won, mainly by taking everyone else’s hands away and playing various cards which essentially just let him keep drawing and rifling through the discard pile until he finally had so many cards he couldn’t help but win.  I think the one or two newbies at the table never even figured out exactly how to play.

Unlike last year, these two events were on separate nights, so that was much better.  However, unlike last year, Game Night was after a big dinner, which meant that we got a pretty late start, so we really only got one game in before it was late enough that we were starting to fade.  Still, we had some great conversations beforehand,8 so I’m not complaining.9

The Core:  The thing I probably found most refreshing was the lack of any attempt to convince ourselves that Perl is not dead.  Maybe it was all the buzz about Perl 6.  Maybe it was just that this YAPC was sold out.10  Whatever the case, no one felt any need to try to stamp out that meme this year, and overall I think that’s a positive sign.

In fact, call me crazy, but I felt a distinct undercurrent of hope this year.  It’s hard to put my finger on exactly why I say this ... again, the enthusiasm about Perl 6 has got to be a big part, as is the fact that no one felt the need to remind us that we weren’t dead yet.  But it was more than that, somehow.  Perhaps it was that I heard the absolute least amount of bitching about crappy jobs this year.  Still a bit here and there, of course, but, weirdly, it seemed like a record number of people were happy with their employment.11  Maybe it was just bits here and there that came out in talks: a gentleman who gave a Lightning Talk on how he’s spending his retirement hacking on the Perl core and it helps keep him feeling relevant, Stevan Little saying he’s now embracing the messiness of the Perl core in his work on the p5mop, Larry’s answer to the final question in the Bernard Pivot questionnaire, “If heaven exists, what would you like to hear God say when you arrive at the pearly gates?”: “I gave you creativity, and you used it to inspire creativity in others.”12  Things like this, just like the enthusiasm for Perl 6, are infectious: hope inspires hope.

But perhaps the most exemplary moment of this year’s YAPC came in the form of dinner on the final night.  You see, I mentioned last year that my first YAPC I brought zero children, my second YAPC I brought 1 child, and my third YAPC I brought 2 children, so obviously this year I was on the hook to bring 3 children.  And, oddly, I did.  My youngest is only 3 years old, so I didn’t think she’d appreciate Bad Movie Night or Game Night as much as the other two kids.  But I really did want to have her come out to meet people at least once.  So I cooked up a crazy plan to have my entire family—3-year-old, 9-year-old, 16-year-old, The Mother, and The Mother’s younger sister—come out and meet me at the hotel after the closing talk, whence we would venture forth and find dinner.  I invited 3 of my former co-workers, all of whom had met one or more of my children before, to accompany me, and all said yes.  But somewhere along the way we started accumulating more attendees.  “Can anyone come?” asked one of my friends.  “Sure!” I said, “as long as they don’t mind putting up with my children.” So they started inviting others, and soon I got into the spirit of it, and, by the time we arrived at the restaurant, we were asking for a table for 16.  So I would particularly like to thank Joe, Aran, Michael, David, Krishna, Shane, Bruce, Liz, Dean, Sean, and Adam,13 several of whom I was meeting for the very first time that night, not only for excellent dinner company, but also for reminding me what an amazing community we have.14  They didn’t just put up with my children, they engaged with them (and with The Mother and her sister, neither of whom have much interest in the sorts of geeky things we tend to steer the conversation towards), and were good-natured and friendly, and also didn’t lynch me when it turned out that the restaurant I chose for our original destination turned out not to allow children.  Often times I forget what a lucky sod I am to have fallen into this community, mostly by accident.  Maybe the Java guys and the Python guys and the PHP guys have these illuminative, epiphanous moments at their conferences too.  But I bet they don’t.  Certainly I feel like our community is special.  And that, in some odd, recursive fashion, is what makes it special.

So, thanks everyone.  And, as always, looking forward to next year!

The Appendix:  A few quick shout-outs:

  • Favorite Perl-specific talk: RJBS on Perl 5.22.
  • Favorite non-Perl-specific talk: VMBrasseur’s talk on failure.  Hands down.
  • Favorite spoken-word15 lightning talk: Brent’s talk on Perl 6.
  • Favorite off-site meal: Sapa.
  • Favorite (paraphrased) Larry nugget of wisdom: You don’t achieve diversity by being diverse; you achieve it by being inclusive.

My reflections on my first YAPC are available on my Other Blog.  Reflections on my second YAPC and my third YAPC are here on this one.


1 But keep in mind this is only my fourth YAPC.


2 My friend David had two balconies in his room.


3 And I needed some help remembering.  I’m pretty sure that when I first started getting excited about Perl 6 my eldest child was still in diapers.  Those of you who met him this year and had to look up to say “hello” can no doubt understand the full implication of this bit of trivia.


4 But mostly failed.  Hopefully I can do better here: I usually express myself much more eloquently in written form.


5 See also RFC 28.


6 To me, anyway.  Your mileage may vary, as always.


7 Again, in my opinion, of course.


8 In fact, two of the “Things I Learned at YAPC” I learned in these conversations.


9 Much.


10 Okay, it only sold out the day before it started, but still.


11 I say “weirdly” because I really don’t believe that corporate America—or corporate The World, for that matter—got any better at treating their employees well this year.  But maybe corporate Perl, somehow, did.


12 I’m typing from memory here; please forgive me if I didn’t get that exactly word-for-word.


13 Especially poor Adam, who had to suffer an hour-long (off and on) description of “Jet Pack Joyride” after asking the innocent question “whatcha playing over there?”


14 And I deeply apologize if I forgot anyone who was with us at dinner.


15 This qualifier had to be added for hopefully obvious reasons.


2 Comments

Regarding: Interoperability between Perl 5 and Perl 6

There's actually been a good amount of work here - See https://github.com/niner/Inline-Perl5/ .

If you have panda installed with your Rakudo Perl 6, you can

panda install Inline::Perl5

And then you can run Perl 5 code from inside Perl 6 - here's a trivial example:

use Inline::Perl5;
my $p5 = Inline::Perl5.new();
$p5.run(q{
    use Data::Dumper;
    print Dumper([1,2,3,4]);
});

Look through the test suite on Inline::Perl5's repository, there are examples of invoking p5 from p6, p6 from p5, OO that crosses between 5/6, using p5 modules from p6…

There are also integration tests that are part of the perl 6 specification suite that are run when testing rakudo.

Leave a comment

About Buddy Burden

user-pic 14 years in California, 25 years in Perl, 34 years in computers, 55 years in bare feet.