Perl 5, Perl 6, Perl 7, Perl 2013, whatever
It seems people outside our community sees Perl as an stalled language because we have not released a new mayor version for so many years. We have to do something to show them they are wrong, right?
Well, no, maybe the problem is ours, unable to see what we don't want to see: They are right. Perl 5 is stalled.
Stevan Little has already described the situation quite well on Perl is not dead, it is a dead end. The funny thing is that it is mostly the same view that started Perl 6 more than a decade ago. It still holds.
From my point of view the mayor problems with Perl 5 are as follows:
- Its internals are a mess: complex, with lots of code rot caused by mis-implemented features, undocumented, etc.
- Backward compatibility: it is very difficult to evolve something when you have committed to almost 100% backward compatibility.
- Under-designed features: just look back at all the features added since Perl 5 came out, most of them are broken in some way or incomplete. Smart-matching, threads, ithreads, attributes, lvalued subs, prototypes, tie, overloading, unicode support, etc.
- Lack of some features people coming from other languages take as granted: threads, exceptions with specific handling syntax (try, catch,etc), function prototypes, etc.
But these are the technical problems, the easily solvable ones!
The real, real, real problem is that perl5-porters doesn't work. Don't get me wrong here, I really appreciate the work all the individual porters do. It is just that as a collective they are not able to evolve the language.
As I see it, Perl 5 needs a leader* (and that may be one person or a small committee). Somebody who says what Perl must be, with a long term vision, able to assume risks and take decisions and that is respected by the big Perl 5 community.
Then the leader may need resources, people able to do what he says.
Until that happens, Perl 5 will keep being as is, maybe with minor improvements or additions but nothing really deserving the Perl 7 name. People outside our community will only laugh if we try to sell then what we have now as the new Perl 7. Our credibility is already low enough, so, please, don't do it!
In the mean time, there is Perl 6. Yes, they did pretty bad on the past, being too ambitious and trying to work in too many fronts at the same time, unable to provide us with Perl 6 on time. But now, when nobody is still expecting it, it seems to me they are going to reach the point of producing something useful and beautiful. If I had the time to get into some project for fun, believe me, it would be Rakudo/Perl 6.
* Yes, perl5-porters have the pumpkin, but I don't see any of them had assumed the leader role, they act more as tutors or peace-keepers. Note that I don't intend that as a critic to them, because this is probably what was expected.