Perl 6现状

Perl 6是一种语言规范,Rakudo是它的一种实现,Rakudo Star是Rakudo的一个发行版本,非常像是Perl 6的Alpha测试版。

Rakudo Star能够完成Perl 5所能完成的大部分任务,但缺少如下特性:

  • Perl 5的一些Unicode特性
  • 非阻塞IO
  • Perl格式

还有一些特性是Perl 5没有Perl 6计划增加但尚未完全完成的,如:

  • 高级宏
  • 线程和并发
  • 用于大型数值型数据集的数据类型

但它已经按照承诺提供了如下特性:

  • 丰富的面向对象模型,其中包括Mixin、Composition、Parametric Role等。
  • 正则表达式Regexes——Perl 6的模式匹配有时候超出了正规的正则表达式,因此Perl 6官方文档将其定义为Regexes。
  • Junctions——一种复合型值

目前,有关Perl 6的大部分工作主要集中在Bug修复、性能和稳定性上,而不是增加新特性。

虽然按照预想Perl 6是Perl的下一个大版本,但社区现在将Perl 5和Perl 6看成单独的项目,它们有各自的团队和项目目标。与Perl 5相比,Perl 6是一门完全不同的语言。它与Perl 5不兼容,也不会代替Perl 5。后者会继续开发和改进,用它编写的CPAN模块还在稳定地增长。虽然有人认为Perl 6会杀死Perl 5,但实际上,Perl 6促进了Perl 5的发展,perl-5.10.x、perl-5.12.x的核心特性以及诸如Moose、autobox、Method-Signatures等CPAN分发包均受到它的影响。

说到CPAN,它是Perl的一大优势,但Perl 6尚没有一个丰富的CPAN基础设施。不过,它也有一些模块:

  • MD5实现
  • 电子邮件头解析
  • File::Find实现

另外,在代码比较网站Rosetta Code上,有700多个Perl 6的示例。感兴趣的读者可以参考Perl 6官方文档对它们进行研究学习,并可以从这里了解Perl 6每周的最新进展。

Rakudo Star安装文件下载请点击这里。希望了解Rakudo编译器内部结构的开发人员也可以每月从这里下载最新的源码包自行构建。需要注意的是,这些包中并不包含Rakudo Star中包含的文档或模块。

感谢郭蕾对本文的审校。

给InfoQ中文站投稿或者参与内容翻译工作,请邮件至[email protected]。也欢迎大家通过新浪微博(@InfoQ)或者腾讯微博(@InfoQ)关注我们,并与我们的编辑和其他读者朋友交流。

你可能感兴趣的:(Perl 6现状)