Perl 11并不是Perl的新版本(Perl从5到6变化太大,已经陷入两难境地多年),而是一系列Perl项目的总称,旨在将Perl 5语言与虚拟机等基础设施解耦,从而解决Perl 5到Perl 6的突变带来的一系列问题,尤其是保证CPAN里的各种模块(主要由Perl 5写成)仍然可以广泛使用。
目前Perl 11包括的项目有:
- p2 快速、小型的Perl11实现,基于传奇程序员_why(更全面的生平介绍参见Smashing的文章)的Potion。
- Potion 虚拟机,受Lua, io和其他语言启发。
- Parrot 同时支持Perl5和Perl6的虚拟机项目,进展缓慢。
- NQP/QAST 轻量级的虚拟机。
- Perlito 一组源码转换程序,支持Perl5、6和JavaScript、Python、Ruby、Go等语言之间的转换。
- moe Scala编写的JVM上的Perl5实现。
GitHub上显示,项目的成员包括cPanel的Reini Urban、Austin Perl Mongers的Will Braswell、Ingy döt Net(YAML创始人,会说国语)、Flavio S. Glock等资深Perl程序员。《Joy of Clojure》一书的作者fogus也是Potion的参与者。
Hacker News上的讨论很多都在取笑Perl社区的这种项目名称太娱乐化了,最典型的批评是:难道Perl的版本节奏要采用Fibonacci数列了?5,6,11,17……也有人提到历史上知名播放器Winamp也曾经出现过类似一幕,2和3之后,跳过4,直接发布了融合2和3的版本5。
当然,版本差异过大带来的问题并不是只有Perl有,Python 2和3的跳跃也带来诸多不便,许多知名项目都不太愿意移植到新的语言版本上去。这不,ginko就很期待Python也搞一个类似的项目,因为他同时用Blender、Apache Thrift和Google Protocol Buffers,前者脚本是Python 3的,后面两个都还是2,而且没有改版的意思。