This is part 13 (and the final installment) of an ongoing series where I explore my relationship with Perl. You may wish to begin at the beginning.

This week we look at what comes next.

I suppose at the end of any long rumination on the past, it’s only natural to think about the future. I’ve tended to avoid pontificating on Perl’s prospects for a number of reasons, not the least of which is that I don’t have any special knowledge to share. I’m not an author of Perl books, a contributor to the Perl core, or even a particularly prolific creator or maintainer of CPAN modules. 1 I don’t have any inside knowledge of Perl from hanging out with Larry, or the folks that run the Perl Foundation, or the current Pumpking (nor any past ones, for that matter). I’m just a regular Joe JAPH—admittedly one who has made his living off Perl for 17 years, well enough to support a nice house in southern California and a complement of five humans, three cats, one guinea pig, and a tank full of tropical fish, snails, and shrimp—but just a working schmoe nonetheless, whose opinion isn’t any better or smarter or wiser or more likely to be true than yours. So, you should definitely not listen to me.



Another reason I don’t often hold forth on the future of Perl is that I’m very conflicted about The Butterfly. I mentioned way back at the beginning 2 that I used to daydream of a “perfect language” which was a conglomeration of Perl and C++. Well, the first time I looked at some Perl 6 code (which was entirely notional, back in those days), I thought: that’s it! That’s my perfect language right there, straight out of Larry’s brain! This is not particularly surprising, after all: I’m not really a language designer, and Larry is, so obviously all the things I could think of that might improve Perl, he would have thought of those things and many more.

But, as time went on, my enthusiasm cooled a bit. This was partially because I didn’t always agree with the decisions of Perl 6. For instance, I’ll freely admit that I’m one of those people who could never quite get over throwing out a perfectly good concatenation operator just because all the other languages were jumping off a cliff. I’m also not sure that the change in the way sigils work is actually an improvement, although at least for that one I can see both sides. Then there’s twigils. I’ve said it before, and I’ll say it again: I hate twigils. But these are trivial complaints overall, and completely overwhelmed by things that I’m drooling over: declarative classes and function signatures and multi-methods and optional strong typing and junctions and pipe operators and lazy lists and alias binding and macros and custom operators. Oh, and not having to type qw so much. Oh oh, and not having to type (?: ) ever again. Oh oh oh, and ... I could go on, and on, and on. There are so many things I love about the design of Perl 6. 3

But then there are the implementations of Perl 6, which are decidely less inspirational. The delays in getting The Butterfly into a usable state are interesting, from an anthropological perspective. There were the things which were completely unavoidable (such as Larry’s health problems) and those which were completely avoidable (such as the Parrot debacle 4 ). Some setbacks have been blamed on the fact that the project is being implemented by an all-volunteer team, but that’s true of any open-source project, no? Decisions were made (such as encouraging multiple implementations, or not using the existing CPAN structure for Perl 6 modules) that we can still debate whether they were vital or detrimental. But, while such ponderings are academically intriguing, arguing about why it’s not ready doesn’t help much. Let’s face it: if we had been told, as children, that it was “almost Christmas” for eight years, we’d all have slit our wrists and we wouldn’t be here having this discussion right now.

The Rakudo folks have decided to start calling Star a “useful and usable distribution of Perl 6.” This attempt to reframe the perception by rearranging the labels is understandable, because how can we answer the question “is it finished yet?” when there’s no clear agreement on what “finished” entails? We could say it’s finished when it passes all its tests, but then we’d have to know when all the tests are finished. Besides, I can easily imagine scenarios where I could be using Perl 6 without all the tests passing, and also scenarios where all the tests pass but it continues to be useless in a practical sense. See, it all comes down to CPAN ... you want to know when Perl 6 will be “finished” (or close enough for government work, as my grandmother used to say)? Easy: when we have the Perl 6 equivalent of DBI, and 10 or so drivers to connect to real databases with. I can live without large swaths of CPAN, but I can’t live without that. 5

So when people ask me if I believe Perl 6 is the future, I’m never quite sure what to say. I’d like to believe it is—or at least that it could be—but, as pretty as it is, as many features and improvements as it touts, as beautifully as it may embody context and linguistics and evolution ... if I can’t Get Shit Done with it, it ain’t Perl as far as I’m concerned.

But turning from The Butterfly to The Velociraptor doesn’t leave me any less conflicted. On the one hand, I know intellectually that Perl is a 25-year-old language, and it only makes sense for it to be on the decline, and that my desperate attempt to pretend that it’s not must be viewed from an outside perspective in the same way that I viewed the COBOL grognards of my youth. When trying to look at myself objectively, I can see that I’m obviously biased and my opinion shouldn’t be trusted. And yet ... it’s also true that Perl has already lasted far beyond what could be reasonably expected. Other scripting languages have been born, flared briefly, and died in less time than Perl has been alive and kicking. Even Python’s popularity is declining according to some measurements, 6 and you may recall that Python proclaimed victory over Perl because it was engineered rather than artistic. (Now that I ponder it: With a few exceptions, projects that are engineered inevitably become obsolete. Art, however, is forever. 7 ) Against all odds, Perl continues to evolve, CPAN modules continue to be uploaded, and new sites continue to be created in Perl. There’s an echo chamber argument to be made, there’s a confirmation bias argument to be made, and probably all sorts of other reasons I should not put faith in these things. And, yet, I continue to do so.

What it comes down to for me, I suppose, is what I said back in Part 7: there just isn’t anything that competes with Perl. I’ll happily upgrade to a better language ... as soon as I find one. It has to be expressive, and it has to be creative, and it has to be legible, and it has to be multi-paradigm and flexible and above all it has to make it easy to Get Shit Done. Where is the language that does all that? Oh, wait: it’s Perl. Yeah, suddenly I remember why I don’t switch. I’m not stubbornly refusing to move on because I’m nostalgic, or because I’m too old or lazy to learn something new, or because I’m a cranky old man who believes these kids today are taking the world to hell in a handbasket 8 ... I’m just honestly unaware of anything worth switching to. I’m not going to switch just to switch, and I’m not going to abandon the best language I’ve been able to find in 26 years of searching just because it might be tough to find a job in it one day. 9

At least year’s YAPC::NA, there was a running theme, if not exactly a concensus, that the best way forward for Perl was for the experimental offshoots (perlito, p2, et al.) to try out new features and let the evolutionary winners be backported to Perl. I wrote about this, and also about p5-mop, which could be considered another one. 10 I’d like to tell you that I too believe this is the future of Perl, but I can’t say that yet. Again, I want to believe it, but let’s stack up a bit more evidence before I begin to state that with any confidence.

I suppose I’m not really sure what the future holds for Perl. Recently, I received a color brochure from the Perl Foundation (as I’m sure did many of my fellow YAPC attendees). My partner 11 asked, in some confusion, “what did they send that to you for?” I told her I wasn’t really sure. It didn’t seem to be begging for money, as perhaps might a letter from the alumni association of your old school, although I think statements pointing out the generosity of TPF donors were a respectful and gentle reminder that they could always use a bit more generosity. After pondering it for a bit longer, I opined that it was just a way to declare “Perl’s not dead!” Much like JoJo Who’s “yopp,” it will save us from the cauldron of irrelevance by allowing the rest of the world to hear our cries of “we are here!” At least it reassures us Perl programmers that someone is out there fighting that fight for us. I haven’t yet decided whether I will allow myself to be reassured, or whether I will absorb the chilling fact that TPF considers such reassurance necessary.

In the end, I suppose there isn’t a clear-cut answer. Perl cannot last forever: nothing does. Larry Wall knows this, and Perl 6 is his attempt to turn the velociraptor into an archaeopteryx—to evolve us past the inevitable dead end by creating a whole new creature who shares some of the same DNA but can adapt to a changing environment. If Perl 6 can’t be the answer, perhaps some other new language will be. But, damn: somebody better get to inventing it, tootsweet. If all else fails, perhaps Perl 5 can evolve itself beyond its shortcomings. But, honestly, that’s a long-shot. Sure, there are some species that have survived mostly unchanged since the Cretaceous (like crocodiles, or sharks), but they’re definitely the exceptions. Which is not to say we shouldn’t keep trying. But I think we all know that, in the long term, we can expect some other language to come along and displace ours.

Except ... how long of a “long term” are we talking here? ‘Cause I still say it’s difficult to get all disturbed by the thought of Perl being replaced when currently there’s zero prospects of anything that can replace Perl. Whatever timeline we’re talking about, it continues to look like the first phase—invention of radical new language which will supplant us—has yet to occur. In the meantime, CPAN modules continue to be created, Perl conferences continue to break attendance records, people around the world continue to make a living doing Perl training, and I continue to sleep well at night knowing that even if my current job disappeared tomorrow I have several decent backup prospects, and a couple of good recruiters that specialize in Perl placements. 12 For now, that’s good enough.



I want to thank you all for coming along this journy with me, and for all the thoughtful, intelligent comments I’ve received, and for all the private encouragement. I hope some of it has been useful, or at minimum entertaining. May your own personal journey with Perl be as eclectic and rewarding as mine has been for me. 13



