Perl 5 is alive and well.
While I was happy with Perl 5.10, the gradual but useful improvements since then have been of great help to me and my work. (I'm perhaps most thankful for the thankless work that's gone into Unicode 6.2 compliance and core support for Unicode throughout.) The yearly release cycle has made Perl 5 even more reliable, and that seems likely to continue.
A couple of years ago, someone asked me for my top five list of improvements Perl 5 needed. I was right about a couple, wrong about a couple of others, and missed one or two important ones. For those playing along at home, I missed:
- A yearly release cycle
- The feature pragma
For all its faults, feature broke the logjam by which it was impossible to add new syntax or backwards-incompatible features to Perl 5. The mechanism isn't perfect (especially its implementation), but it allows progress, and for that I'm thankful.
I can't predict what will be ready for Perl 5.18 next April or May, but I can update my list to include features I'd like to see in an upcoming release. I'll go into more detail of each of these features in future installments.
- A metaobject protocol in the core, to improve Perl 5's object system in a well-defined way
- A ctypes-like replacement for simple XS
- A formalized AST between the parser and the code generator, with the ability to manipulate the AST and inject new subtrees in pure Perl 5
- Compact, native-type data structures
- Declarative replacements for procedural code
(For the CL fans in the audience, I like syntax, and I have a lot of trouble giving up CPAN's breadth and cross-platform goodness.)
What's on your list?