[Update: as you read this, when I say “Perl 6”, it will help if you take that as “production-ready Perl 6”.]
I’ve been in the middle of several
debates discussions about the evolution of Perl 5 in the last few weeks. I’ve come to realize that inherent in various attitudes are three points of view about Perl 6 and each of these parallel different views for the future of Perl 5.
[These are not mutually exclusive, either.]
POV #1: Perl 6 is pointless. Even when it gets done, no one is going to port their legacy apps to Perl 6. So Perl 5 needs long-term maintenance anyway. Maybe Perl 6 will have some killer features, but it will have to compete with other hot languages to get enough adoption for it to be significant for anyone’s employment prospects. Companies will continue to favor more popular languages with easier hiring.
POV #2: Perl 6 is hopeless. It might have great ideas, but – given its track record – has no chance of getting to production readiness in any useful time-frame. Possibly, less ambitious evolutions of Perl 5 that fix some of Perl 5’s warts without trying to be a hundred-year language could succeed instead.
POV #3: Perl 6 is just not done. We already have an evolution of Perl 5 and it’s called Perl 6. It’s taken a long and twisty path, but recent work to port it to well-established VMs is giving it a real path forward. Maybe other alternatives to Perl 5 are possible, but Perl 6 has a head start. It’s just a matter of time.
If someone thinks Perl 6 is pointless, then it would be logically consistent to think that evolutions of Perl 5 are pointless, too. Any discussion of Perl 5 evolution just distracts from maintaining (perhaps tweaking) Perl 5 or trying to boost its market share somehow.
If someone thinks Perl 6 is not pointless, but is hopeless, then it’s logically consistent to want a significant – but less ambitious – evolution to Perl 5 instead that might have a higher chance of success. I think this explains the (premature?) excitement about the potential of Moe, despite the fact that it’s explicitly just an experiment.
If someone thinks Perl 6 is neither pointless nor hopeless, but just not done, then all the debate about evolving Perl 5 might seem unnecessary, and they might be frustrated that the efforts towards Perl 6 haven’t gotten more credit.
I think if I bucket the opinions of people I speak to or whose blogs I read into those categories, it encompasses most of the debate. And – because those positions are pretty much pure opinion – it’s hard to shake anyone out of them and the debates waste a lot of energy and accomplish little.
We won’t know if Perl 6 is pointless until we have it (or a comparable successor) – though we might draw hypotheses from other successor languages like Python 3 or from brand new languages.
We won’t know if Perl 6 is hopeless or just not done until the Perl 6 implementors ship a real production release. The more evidence they can show that real progress is being made, the more they can shape opinions, but they’ve spent more than a decade setting low expectations and that’s a hard hole to climb out from.
Personally, I don’t think Perl 6 (or a Perl 5 successor) is pointless. I don’t think Perl 6 is entirely hopeless, but at this point I’m extremely skeptical, even while I wish the Perl 6 team the best of luck.
I hope they prove me wrong.
[Update: follow-up article]