YAPC Reflections (2013)
Well, I’ve just gotten back from my second YAPC, and I thought I’d take a moment to share a few reflections.
First, general thoughts: I had an excellent time. I knew far more people than I had the first time, which is partially just having met a bunch of folks in 2011, and partially because more of my current and former coworkers were in attendance. Plus I met a whole lot of new people, so now I’ll know even more folks next time. This is nice for me, as I’m one of those weird half-introvert-half-extrovert people. I’m not much for walking up to people I’ve never met before and starting a conversation. On the other hand, if I already know you, you can’t get me to shut up. So, the more people I know, the more people I’m likely to meet.
I also spoke for the first time (the first time at YAPC, I mean). This encouraged a lot of people to come up to me and just start chatting, which is nice, as it removes the burden of conversation initiation from me and I’m forced to just go with the flow or seem like a jerk, which I’m not. (Well, not most of the time. To people I just met, anyway. People who know me well: just shut up.) So, overall, socially this was a good conference for me.
Also one of my former (and future) coworkers was actually from Austin, and he pointed us to all the best places to eat. So the meals were awesome. I brought my son along (he doesn’t program, but it was a chance for him to see Austin and have some father-son bonding time), and he was entertaining at meals and other gatherings. The Bad Movie BOF, by the way, was insanely awesome. Seriously: my cheeks were aching that night from all the laughing. I can’t understand why more people don’t come to these.
The venue was pretty nice. A/C was cranking, which is good because Austin is now officially the hottest place I have ever been to. I used to spend a week or so every single year in Florida, I’ve visited New Orleans three or four times, and I live in Southern California, but nothing compares to Austin. It’s the first place I’ve voluntarily put my shoes on to walk around in parking lots since I was a teenager. I thought I could go barefoot anywhere, but the Austin blacktop defeated me. And this was June. What it must be like in August ... I can’t imagine.
But I digress. The venue. The talks were set up well, the auditorium in particular was nice, and the technology worked flawlessly as far as I was aware. If I had to make a couple of nitpicks, I would have wished for more plugs in the auditorium—the room must have held over a hundred of us, all fighting over the three or four outlets—and possibly for a shorter walk between the buildings. Due to the heat more than anything else. But it reminded me of college days, trying to haul ass to the next class without being late. Except I’m older and fatter now. Like, a lot older and fatter.
One specific thought: I had an interesting time analyzing and comparing three of the different talks that I saw. The talks were: Perl—The Detroit of Scripting Languages by Stevan Little, Perl 5: Postcards from the Edge by Ricardo Signes, and Velociraptor of Christmas Future by Matt Trout. Now, in many ways these talks were in agreement. Most especially about the future of Perl 5 being in the many experiments and offshoots of the language (such as Moe, perlito, p2, and so forth). All these gentlemen essentially agreed that the best way forward for Perl was to have these experimental projects break backwards compatibility so that Perl 5 didn’t have to. Then, whatever parts were successful despite the fact that they weren’t backwards compatible could be stolen for mainline Perl with the justification that it had been tested and proven in the wild.
This is all good, and I tend to agree this that this is a pretty decent way of moving forward. Where the interesting part comes in, though, is in how the different talks approached the topic of backwards compatibility (or “backcompat” for short, as I believe all of them put it). Now, backcompat is a tricky area in the best of times, and many would argue that, as far as Perl’s popularity as a programming language goes, these are hardly the best of times. Perl is an older language, and it’s now in the very difficult position of needing to attract new blood without pissing off any of its existing userbase. Much like a band that’s just past the peak of its success, if it keeps playing the same old stuff, its fans will inevitably just die off, but if it radically reinvents itself, it puts the existing revenue stream from the diehard fans at risk. It’s quite a dilemma, and I think it would be interesting to have a discussion about the best way to go about this.
But, somewhat oddly (at least in my opinion), it seems we can’t come to any agreement on where we currently stand with backcompat right now. And I don’t believe we can have a meaningful discussion about where we’re going if we don’t know where we are. Stevan Little said that backcompat was a serious issue that was holding us back from innovating. Ricardo Signes said that backcompat was no problem at all and everyone should feel free to patch away. Matt Trout said that backcompat was definitely restraining us, but that that’s a good thing, because it ensures that we can continue to just get things done in Perl. I’m exaggerating just a bit here to make my point (all three speakers were actually more nuanced in their pronouncements than that—yes, even Matt!), but not very much, I don’t think. I believe the talks will be available in video form sooner or later, so please do watch them yourselves and draw your own conclusions. But my point is that I’m not trying to distort anything these guys said, or at least not intentionally.
Now, if you think about it, these three radically different positions—the issue exists and it’s good, the issue exists and it’s bad, and the issue doesn’t exist at all—basically represent the entire spectrum of possible opinions on backcompat by covering all three possible extremes. (Can I refer to a continuum with three endpoints as a spectrum? Feel free to suggest a better word.) I told Ricardo after his talk that his view seemed diametrically opposed to Stevan’s, but that was before I heard Matt’s. Perhaps they’re triametrically opposed? Whatever you want to call it, it sure does seem like these three don’t agree at all.
But here’s the weird thing: while I don’t know these three guys very well, I have interacted with two of them online, and have had a couple of long discussions over multiple beers with the other (and, if you’ve met them, you’ll probably know which is which from that description), and I have thus far found them all to be very reasonable, intelligent, and amiable fellows. I even gathered, from various conversations, that they get along well with each other. I bet that if we were to put all three of them of them in a room together and tell them to work it out, they would just stare at us blankly and say they were all in basic agreement, and there was nothing to work out. So why did their three talks all sound so contradictory?
I wish I could follow this exploration with a brilliant conclusion that clears up the whole mess, but, after long pondering, I still don’t know the answer myself. First of all, it’s possible that it’s just me, and no one else heard any conflicts at all. Certainly Ricardo seemed confused when I asked him why he’d said the exact opposite of what Stevan had said. But I don’t think that’s it. I think there’s probably just a difference in the way each of the three approached the question that caused them to end up in different places. I suspect that they’re all three wrong ... and that they’re all three right (which fits my theory of balance and paradox). I’m not sure how to tease out the truth from among the three perspectives ... I’m not sure there even is a “truth” there. Like an optical illusion, it’s probably all in how you look at it. Still, I think having a comprehensive theory on where we stand on the issue of backcompat—sort of a backcompat unified theory, if you will—is important for us to be able to move forward.
But, hey: I could be wrong there too.
Final addendum: The first night I spent in my own bed after returning from Austin, I dreamed about Perl. I rarely do this, but obviously the conference had seeped into my brain. In the dream, I had to write a module which not only loaded itself secretly, but also foiled attempts to load the actual module it was supposed to be imitating. (Yeah, I know that doesn’t necessarily make a lot of sense. Dude: it was a dream.) Considering the dream involved writing a Pegex parser and an @INC
hook, I feel fairly confident I even know exactly which talks are to blame.
Looking forward to next year!
My reflections on my first YAPC are available on my Other Blog.
I find it remarkable that you explicitly mention Moe, p2 and Perlito, and don't mention Rakudo.
Rakudo natively implements Parsing Expression Grammars (PEGs).
It's Perl 5 slang hooks @INC to allow Perl 5 modules to load.
And MoarVM was a secret for 15 months...
Actually I think you hit it spot on the head. However I don't think there any real contradiction in our opinions, just subtle intersection.
My point of view is that our implied commitment to backwards compatibility is preventing us from evolving the Perl 5 language in any major way (implied and major being the operative words in that sentence). Perl 6 was supposed to be the way out of this, but instead the project has morphed into something else entirely.
I was also trying to point out that if we did change Perl 5 in even a minor way, large parts of CPAN would be lost. This is because the modules on CPAN rely on Perl 5 the way it is, and backwards incompatible changes in the language could be a real problem for CPAN.
As for Ricardo, I believe that given a patch that - breaks backwards compatibility, provides a sane deprecation policy, and is thoroughly discussed on p5p - he would happily accept the patch. However, these patches are hard to come by, it takes a lot of commitment to write one and defend it on p5p. But Ricardo is not talking about major backwards incompatible changes as I am, as evidenced by Pete Martini's awesome subroutine signature work, which is in fact backwards compatible. For a patch to jump through all the required hoops, it by definition must be either backwards compatible or only subtly incompatible.
As for Matt, I believe he is just being pragmatic. He is willing to wait patiently while others work things out. Knowing Matt for as long as I have, I know he will readily embrace new tech and bend it to his twisted will, just as he has done with Perl 5.
So you see, there is no contradiction here. I am on the outer fringe of "extreme change"; while Ricardo is in the middle, hoping for sensible and reasonable change and willing to facilitate it happening; and Matt is just ready and waiting to use (*cough* abuse *cough*) whatever may come.
- Stevan
You make many excellent points, and in particular, I'm now really interested in reading about Balance and Paradox, because I've had quite a few thoughts on this topic of agreement that sounds like disagreement.
That said, I'm going to skip past all of your awesome points and note two things: