28

Perl 6 的当前状态是什么,是否可以投入生产?我们现在站在哪里?有很多程序员对 Perl 6 的当前进展感到好奇。

在 reddithttp://perlmonks.org/?node_id=835419上还有另外两个关于这个的话题。

4

4 回答 4

23

首先,也是最重要的,关注行星六新闻聚合器。包括来自主要开发人员和社区许多成员的 Perl 6 每周会议和博客,这是跟上 Perl 6 进展的好方法。

要了解领先的 Perl 6 实现 Rakudo Perl 的工作方式,请查看Perl 6 Advent Calendar。每天都展示 Perl 6 的不同方面,以及Rakudo现在实施的程度。

更新(2012 年 3 月):perl6.org 的功能比较显示了 Rakudo 和 Niecza(针对 CLR 的编译器,例如 .NET、Mono)的实现进度。


Perl 6,作为一个规范,仍在不断地完善和重构。规范不清楚的一些例子:对象层次结构,核心库应该和不应该是什么,日期处理,懒惰,连接的“自动线程”。但是大部分语言已经完成。该规范非常雄心勃勃,恕我直言,这是 Perl 6 花了这么长时间才开始的主要原因之一。

在实施方面,领先的项目是建立在 Parrot VM 之上的 Rakudo Perl 6。可能有十几个专门的开发人员和更多的人正在帮助测试、编写库、代码和文档。大多数开发工作都是由 Perl 基金会和社区的资助资助的,所以没有理由期望它会逐渐消失。

Rakudo 有很多错误和很多缺失的功能。它最近才经历了一次巨大的重构——“ng”分支。浏览任何现有的 Perl 6 源代码,你会发现很多评论说“Rakudobug”或“Rakudo 还没有实现这个......”

即便如此,这也为乐道描绘了一幅不公平的画面。Perl 6 规范至少可以说是雄心勃勃的。该语言具有如此多的功能,以至于它已经实现了多年的发展才能达到今天的水平。Rakudo 确实已经足够完善,人们可以在其中编写基于文本的游戏、wiki 和其他 Web 应用程序,而且它每天都在变得更好。到目前为止,开发人员已经为 Perl 6 编写了大约 40,000 个单元测试,因此很容易看到实现方面的改进(Rakudo 目前通过了大约 30,000 个测试,或 79% 的测试套件)

Rakudo 的第一个“可用”(稳定)版本被称为“Rakudo Star”。目前计划在 2010 年第二季度(4 月至 6 月)发布。总的想法是实现 Perl 6 的大部分——不是整个语言,而是它的一个有用的子集——并最大限度地减少错误。至于生产就绪,Perl 6 的发布日期一直是“圣诞节”。也许今年圣诞节,更有可能是别的什么。你需要很长时间才能使用整个 Perl 6,没有错误,但我们至少会很快看到一个稳定的版本,希望一旦人们发现 Perl 6 的炒作将从那里滚雪球这是真的

如果您对 Perl 6 感兴趣,您可以考虑加入社区。根据我的经验,它是一个非常友好的社区(它几乎让我觉得每个人都很好,即使在 IRC 上也是如此)。安装 Rakudo,尝试破解它,提交错误。编写测试用例。编写核心功能的实现,编写模块。有很多事情要做!

于 2010-04-19T14:13:58.310 回答
15

注意:请检查原始答案的日期。自 2020 年 4 月起,情况不再如此。

根据 SO 自己的线程,使用“生产就绪”的最常见定义, Perl 6 不是生产就绪- 实现不稳定并且可能缺乏规范的全部功能。

有关截至 2008 年的状态的详细信息,请参阅此 SO 答案。语言规范似乎很稳定(至少根据链接帖子中的 brian d foy),但尚未实现。

至于具体日期,根据 2010 年 4 月 8 日的这篇帖子,最领先的 Perl 6 实现的第一个主要版本 - Rakudo(在 Parrot VM 上) - 名为“Rakudo Star 1.0” ,暂定于 2010 年第二季度(最初的计划是在 2010 年 4 月左右,但由于涉及首席开发人员的个人情况而改变)。

当然,YMMV - 我看到人们在生产中使用的代码/项目(包括他们自己编写的)比 Perl 6 的当前状态低很多。但在 Perl 6 被广泛发布一段时间之前,我个人甚至不会开始梦想部署 Perl 6。

但是,请注意非常重要的一点:以上内容并不意味着 Perl 6 是蒸汽软件或不应该学习它 - 听起来它确实进展顺利,因此我个人打算开始深入研究它(嗯,已经有谢谢到 SO) 提前,所以我准备在它稳定一点时使用它。

另外,我想补充一点,Perl 6 的很大一部分功能被反向移植到 Perl 5(在 5.10-5-12 中,请参阅Perl6::modules),所以上述关于学习 Perl6 的观点非常即使您没有立即部署 Perl 6 本身的计划。

于 2010-04-19T10:10:54.967 回答
10

Perl 6 几天前才正式发布,也就是 2015 年圣诞节。实际上发布了两个非常重要的东西。

首先,也是最重要的官方语言规范 Perl 6.c(c 代表圣诞节)发布了。该规范是一组超过 120,000 个测试,称为 Perl 6 Roast(所有规格测试的存储),可以在 Github 上的perl6 / roast下找到

其次,发布了称为 Rakudo 的 Perl 6 实现的新版本。Rakudo 是一个在 MoarVM 和 JVM 虚拟机上运行的 Perl 6 编译器。这个新版本的 Rakudo 以 6.c 语言规范为目标,并通过了几个主要架构的所有测试。有关该版本的更多信息,请参见 Github 的 rakudo/rakudo,尤其是 rakudo/rakudo/blob/nom/docs/announce/2015.12.md 下的 2015.12 公告。

Rakudo 安装起来相当简单,我个人推荐使用 Rakudo 安装管理器 rakudobrew。按照这里的说明https://github.com/tadzik/rakudobrew。除了安装 Rakudo 和 MoarVM 之外,它还可以安装 Panda,它是一个 Perl 6 模块安装程序。

作为一名资深的 Perl 5 和 Python 软件开发人员,我不得不说 Perl 6 看起来是一种极其强大和深入的语言,它解决了我在现有动态语言中发现的许多问题。直接从 Rakudo 公告中获取:

  • 保留 Perl 的核心价值观:表达能力、完成工作、接受自然语言的影响以及突破语言设计的界限。
  • 具有简洁、现代的语法,植根于熟悉的结构,但会重新审视和修改需要它的东西。
  • 是真正的多范式,支持优雅的面向对象、函数式、过程式和并发编程
  • 作为一种出色的胶水语言,允许轻松调用 C/C++(使用 NativeCall)并保持与 Perl 5 的兼容性(通过 Inline::Perl5)。
  • 提供用于处理异步数据和并行计算的可组合结构
  • 戏剧性地改革并设置了正则表达式语法的新标准,它可以扩展到完整的语法,强大到足以解析 Perl 6 本身
  • 具有出色的 Unicode 支持,字符串在字形级别工作
  • 重视词法范围和封装,便于重构
  • 可通过元对象编程、用户定义的运算符和特征进行扩展

你想知道的关于 Perl 6 的所有信息都可以在这里http://perl6.org/找到。

于 2015-12-29T23:50:31.147 回答
2

Leon Timmermans 今天发表了一篇有趣的博客,介绍了 Perl 6 中出现的一些差异。
为什么 Perl 6 不同 没有太多谈论这些差异何时会出现。

于 2010-04-20T17:19:32.943 回答