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 基础设施。不过,它也有一些模块:
另外,在代码比较网站 Rosetta Code 上,有700 多个Perl 6 的示例。感兴趣的读者可以参考 Perl 6 官方文档对它们进行研究学习,并可以从这里了解Perl 6 每周的最新进展。
Rakudo Star 安装文件下载请点击这里。希望了解Rakudo 编译器内部结构的开发人员也可以每月从这里下载最新的源码包自行构建。需要注意的是,这些包中并不包含Rakudo Star 中包含的文档或模块。
感谢郭蕾对本文的审校。
给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ )或者腾讯微博( @InfoQ )关注我们,并与我们的编辑和其他读者朋友交流。
评论