ADDENDUM Jul 3: I donât know how, but this got a bit of attention. chromatic has compared me to Barbie, szabgab wondered if Iâm a troll, and several people suggested that Iâm trying to justify leaving Perl for Python.
Remember, Iâm a long-time Perl developer. Iâm the ideal target audience: someone who already uses your product. In recent years Iâve become disillusioned with Perl, having watched several similar languages eclipse it. Iâm surely not unique in feeling this way.
So why is the reaction to downplay what I said, rather than to tell me why I should want to use Perl, or to make Perl something Iâd want to use again? chromatic suggests I just havenât done my research. But if I donât know why I should use your product, thatâs your problem.
I did have an interesting discussion in #perl6 about this, which led to an insight. Perl 6 is unusual, possibly even unique, in having a large spec written before an implementation. I think some of its communication issues stem from this: outsiders see a spec and take it to mean an implementation isnât â1.0â until it reasonably matches the spec. Implementors, on the other hand, regard the spec as merely a direction to move in. So outsiders are waiting for a blessed 1.0 release, and think the insiders sound slow and stuffy for not giving them one. Insiders are working on an organic thing, and think outsiders are obnoxious and impatient for wanting something absurd.
Explaining the discrepancy to people who want to use Perl 6 is technically correct, but not practically helpful. It may be better to carve up the Perl 6 spec into discrete and useful milestones, with some big olâ colored chart detailing whatâs supported by which implementations. (I actually canât tell right now what Rakudo supports and doesnât. rakudo.org is just a blog.)
I feel the need to respond to this series of blog posts about Perl 6, whether it should be renamed, and what the implications are for Perl 5.
Iâm a Perl person. Iâve been using Perl since I was eleven. I got paid to write Perl for the past four-and-a-bit years. Letâs pretend Iâm qualified to say anything here.
A confession: I wince when I call myself a âPerl personâ. I think it makes me sound crusty and obsolete. Because Perl 5 is crusty and obsolete.
Who is using Perl for new software? Besides a couple grumpy nerds I know personally, I havenât the slightest clueâand I sort of pay attention to Perl. I have zero interest in Java or .NET, but Iâm still dimly aware that things are built with them. I canât tell you what Perl is actually being used for besides all the cool new modules on CPAN designed to make Perl suck less.
What has happened with Perl since 5.8? 5.10 brought us the smart-match operator, the defined-or operator, and given/when. 5.12 brought us⊠well, nothing. 5.14 allows push $arrayref
. And thatâs all! There are a lot of bullet points in the changelogs, yes, but almost all of them are arcane things like âthe ⊠operatorâ or â$, flexibilityâ. These are improvements, technically, but theyâre not anything thatâs going to make me jump for Perl 5 for my next project; theyâre just going to make existing Perl 5 work hurt less. (And even that isnât automatically true; my previous job is at least a year into an effort to move from Perl 5.8 to Perl 5.10. Note that Perl 5.10 is now so old itâs unsupported.)
The ecosystem is moving, sure, but if you buy into that then youâre still stuck with the language. Worse, if you use any other Perl software, you probably have to work with an object system you donât use, an exception model you donât use, some kind of bundling thing you donât use, and on it goes.
I donât see anyone talk about Perl except people who are really into Perl already. It doesnât attract new blood; I certainly wouldnât point anyone towards it. If it were a human language, weâd certainly call it dead, or at least moribund.