Perl 6的当前状态是什么?

时间:2010-04-19 09:57:36

标签: perl perl6 raku

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

还有另外两个主题在on reddithttp://perlmonks.org/?node_id=835419上公开。

4 个答案:

答案 0 :(得分:23)

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

要了解领先的Perl 6实现Rakudo Perl是如何做的,请查看Perl 6 Advent Calendar。每天都会显示Perl 6的不同方面,以及Rakudo现在现在实施的程度。

更新(2012年3月):perl6.org's feature comparison显示了Rakudo和Niecza(一个CLR目标编译器,例如.NET,Mono)的实现进度。


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

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

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

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

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

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

答案 1 :(得分:15)

使用最常见的definitions of "producion ready" as per SO's own thread,Perl 6不能进行生产准备 - 实现不稳定,可能缺少规范的完整功能。

Please see this SO answer for details on the status as of 2008。语言规范似乎很稳定(至少按照链接帖子中的brian d foy),但实现还没有。

至于特定日期,as per this post于2010年8月4日,最先进的Perl 6实施的第一个主要版本 - Rakudo(在Parrot VM上) - 命名为“Rakudo Star 1.0”暂定于2010年第二季度(原计划是在2010年4月左右,但由于涉及首席开发人员的个人情况而被转移)。

当然,YMMV - 我看到人们在生产中使用了不太稳定的代码/项目(包括他们自己编写的内容)而不是Perl 6的当前状态。但我个人甚至不会开始梦想部署Perl 6,直到它被广泛发布一段时间。

但是,请注意一个非常重要的一点:上述并不意味着Perl 6是蒸发器或不应该学习它 - 听起来好像它进展顺利,因此我个人打算开始深入挖掘它(好吧,已经有了SO),所以当它稳定了一点时我就准备好了。

此外,我想补充一点,很大一部分优秀的Perl 6功能被反向移植到Perl 5(在5.10-5-12中,见Perl6:: modules),所以上面的一点是关于即使您没有立即部署Perl 6本身的计划,学习Perl6也非常重要。

答案 2 :(得分:10)

Perl 6刚刚于2015年圣诞节前几天正式发布。实际上发布了两件非常重要的事情。

首先也是最重要的官方和现在稳定的语言规范,Perl 6.c(圣诞节的c),已经发布。该规范是一套超过120,000项测试,称为Perl 6 Roast( R 存储库 o f A ll S pec T ests)可以在perl6 /烤肉上的Github上找到。

其次,发布了一个名为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安装相当简单,我个人建议使用rakudobrew,这是一个Rakudo安装管理器。按照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支持,字符串工作在字形级别
  • 值词法范围和封装,实现轻松重构
  • 可通过元对象编程,用户定义的运算符和特征进行扩展

您可以在http://perl6.org/找到您想要了解的有关Perl 6的所有信息。

答案 3 :(得分:2)

Leon Timmermans今天发布了有趣的博客,内容涉及Perl 6中的一些差异。
Why Perl 6 Is Different没有太多谈论何时会出现这些差异。