有什么明显的进展吗?现在只是学术练习吗?您是否相信 Perl 会在有或没有 Perl 6 的情况下继续发展,还是很快就会被遗忘?
13 回答
冒着听起来像 Perl 狂热分子的风险,我仍然对 Perl 6 感到兴奋,并且觉得最终结果将在它发布时具有相关性。过去九个月在 Parrot Front () 方面取得了一些不错的成就,甚至还带来了一些可观的捐款,以帮助资助增加的发展。
从最近的博客文章:
Rakudo 目前支持数组、散列、类、对象、继承、角色、枚举类型、子集类型、角色组合、多方法调度、类型检查、基本 I/O、命名正则表达式、语法、可选参数、命名参数、slurpy 参数、 Perl 6 期望的闭包、智能匹配、连接和许多其他特性。
请密切关注Rakudo.org(Rakudo 是基于 Parrot 构建的 Perl 6 实现的名称),以获取有关 Perl 6 正在进行的开发过程的新闻。
Perl 6 正在缓慢而稳定地发展。Larry Wall 编写了一个解析器,它可以解析我们所知道的所有 Perl 6(基本上是测试套件加上一些其他代码)。Rakudo 是 Parrot 上的 Perl 6,性能也很好。您可以使用rakudo.de上的图表在测试套件中跟踪其进度
请注意,它是一种全新的语言,实现起来并不简单。我预计明年之前不会有可用的版本,即便如此,任何实现都需要相当长的时间才能像今天的 Perl 5 一样成熟(它已经有 20 年的时间来开发稳定的代码库)。
有很多可见的进步。chromatic 每周将 Parrot/Perl 6 电话会议的会议记录发布到Use.perl和rakudo.org,您可以阅读Jonathan Worthington 的日志,或Patrick Michaud 的日志,或各种 Perl 6 邮件列表。正如 Mortiz 指出的,您可以看到 测试套件的日常状态。
最近的发展包括 Larry Wall 完成了指定完整语法的工作,Rakudo 开发人员添加了预编译模块支持,以及 Jonathan 的多级调度工作。
跟踪进度当然很容易,但是您可能已经知道可以轻松地使用 Google 来查找(“perl6 进度”会带来很好的资源)。也许您还有另一个问题,或者只是想踢马蜂窝?
请参阅官方 Perl 6 Wiki 以查找最新信息:
http://www.perlfoundation.org/perl6/index.cgi?perl_6
来自 2 个主要 Perl 6 博客的最新标题显示在官方 Perl 6 wiki 主页的底部。
那里还有很多其他有用的信息和链接。
例如,最近的 Perl 6 文章和演示文稿:
http://www.perlfoundation.org/perl6/index.cgi?perl_6_articles_and_presentations
Parrot VM 用于动态语言(由 Rakudo/Perl 6 使用)也有一个官方 wiki:
http://www.perlfoundation.org/parrot/index.cgi?parrot
Parrot 是多语言的,因此 Perl 6 将能够调用用其他 Parrot 语言编写的模块,而其他 Parrot 语言将能够调用编译成 Parrot 的 Perl 6 模块。
与由其参考实现定义的 Perl 5 不同,Perl 6 由其测试套件定义。所以最终会有其他版本的 Perl 6 不能在 Parrot VM 上运行。
Perl 5 仍在不断发展。Perl 5.10 是最近的一个主要版本,它(在许多其他改进中)还具有一些与 Perl 6 相关的特性。Perl 5.12 正在积极开发中(如 Perl 5.11)。
Perl 5.12 将支持调用(以及被调用)Perl 6。Perl 6 应该能够编译绝大多数 Perl 5 代码——这是一个主要优先事项。
请参阅官方 Perl 5 Wiki 以查找最新信息:
Perl 6 进展顺利。Perl 6 与以前的 Perl 有点不同,因为 Perl 6 实际上是一种语言规范,而不是它的实现。Parrot 之上的参考实现是 Perl 6 项目的主要推动力,已重命名为 Rakudo,并且进展顺利。我找到的关于它的新闻最好的地方是http://planetsix.perl.org/。目前,据我了解,该语言的大部分重要功能都已实现,并且正在充实其余部分并编写测试。你可以下载它并测试一下。最简单的方法似乎是 cygwin 版本,它已捆绑并制成 cygwin 包。
将其他语言定位到 parrot vm 的能力将使使用您熟悉的任何语言制作产品变得微不足道。
最近有活动的语言列表,或者至少用最新的鹦鹉测试过(截至 2008 年 9 月 22 日):
对于它直到 2005 年才开始的评论......我想这取决于你是否将 Parrot 视为 Perl6。最初的团队做到了,但多年来我们没有得到“Perl6 语言”的支持。
我们在 2000-2004 年间对 Parrot 进行了实际工作,并且大部分 VM 基础工作都在那里。到 2002 年,我们有了延续、协同例程、JIT、中间编译器和除 Perl6 之外的十几种语言,包括用 Parrot 的 PIR 编写的 BASIC 解释器。到那时,我们可以编译和运行世界上几乎任何类型的语言,没有高度并发的语言,而且我们的能力远远超出了 Perl6 对实现平台的需求。
VM 本身已经具备多年的能力。Perl6 作为一门语言是另一回事,因为它是一个非常难以解析的野兽。这对 Parrot 没有任何影响。这只是对 Perl 文化的一种反思,这就是为什么其他脚本语言的兴起加速而 Perl5 正在衰落,曾经选择 Perl5 进行新系统实现的人们转向 Ruby、Python 和 Groovy,以及 Java 和C# 进化的框架,大量使用反射进行运行时调度。
尽管我非常喜欢 Perl,但如果一种语言很难实现,以至于无法在不到十年的时间内编写出生产质量的编译器,那就大错特错了!C++ 更易于解析,并且在 Per6 的一小部分时间内实现。这应该告诉我们一些事情。Derek Jones 在他的博客“代码的形状”中写道,C++ 可能已经“太大而不能失败”(http://shape-of-code.coding-guidelines.com/2008/12/c-goes-for-太大而不能倒/)。C++ 有能力做到这一点,因为它在发展壮大之前首先取得了成功。Perl6 可能是“太大而无法成功”,因为范围如此宏大以至于项目很难留住贡献者,因为典型贡献者的注意力可能是 2-3 年,而不是 10 年。
即使 Perl 5 永远无法实现,Perl 5 也将继续出色且可用。六重振奋了 Perl 5,Perl 5 继续体验了许多奇妙的新事物,例如 Moose。
我认为 Perl 6 总有一天会完成并且会很好,但是现在,我是一个 Fiver,我很高兴这样。
我觉得 Perl 6 可能会带来一些好东西(例如 parrot),但我不指望用这种语言做任何事情。
在我工作的生物信息学开发小组中,我们鼓励使用 Python 进行新的开发,而过去 Perl 是首选语言。Python 似乎为我们提供了一条更好的前进道路。
慢而迟。它有一个第二系统疾病的终末病例。当我还是一名 Perl 黑客时(当时),他们已经在 Perl 6 上工作了两年。那是6年前的事了。你可以在那个时候建立一个完整的操作系统。
圣诞节前就出来了。;-) 我在播客上听说今年圣诞节前会有某种阿尔法。他们对此很明确,但我已经有一段时间没有听到了。