Firstly, and most importantly, follow the Planet Six news aggregator. Perl 6 weekly meetings and blogs from the lead developers and many members of the community are included, and it's a great way to keep up on the progress of Perl 6.
To get an idea of how Rakudo Perl, the leading Perl 6 implementation is doing, check out the Perl 6 Advent Calendar. Every day shows a different facet of Perl 6, and the extent to which it has been implemented right now by Rakudo.
Update (Mar 2012): perl6.org's feature comparison shows the implementation progress of both Rakudo and Niecza (a CLR-targeting compiler, e.g. .NET, Mono).
Perl 6, as a specification, is still undergoing constant refinement and refactoring. Some examples of where the spec is unclear: the object hierarchy, what should and should not be part of the core library, date handling, laziness, 'auto-threading' of junctions. But the bulk of the language has been finalised. The spec is very ambitious, and IMHO is one of the major reasons why Perl 6 has taken so long to get going.
In terms of implementation, the leading project is Rakudo Perl 6, built on top of the Parrot VM. There are perhaps a dozen dedicated developers and many more who are helping test, write libraries, code and documentation. Most development work is funded by grants from the Perl Foundation and community, so there is no reason to expect it to peter out.
Rakudo has plenty of bugs and plenty of missing functionality. It has only recently undergone a huge refactoring - the 'ng' branch. Browse any existing Perl 6 source and you'll find plenty of comments saying "Rakudobug" or "Rakudo doesn't yet implement this..."
Even so, this paints an unfair picture of Rakudo. The Perl 6 specification is ambitious to say the least. The language has such an insane number of features that it has taken implementations years of development to get to the level they are at today. Rakudo is certainly complete enough for people to have written text-based games, wikis and other web applications in, and it's getting better every day. Developers have written around 40,000 unit tests for Perl 6 so far, so it's easy to see improvements in the implementation (Rakudo currently passes ~30k tests, or 79% of the test-suite)
The first "usable" (stable) release of Rakudo is known as 'Rakudo Star'. It is currently planned for Q2 2010 (April-June). The general idea was to implement a large portion of Perl 6 - not the whole language, but a useful subset of it - and minimise bugs. As for production ready, Perl 6 has always had a release date of "Christmas". Perhaps this Christmas, more likely something else. It's going to be a long time before you can use the whole of Perl 6, bug-free, but we're at least going to see a stable release very soon, and hopefully the hype for Perl 6 will snowball from there once people discover that it's real.
If you are interested in Perl 6, you might consider getting involved in the community. From my experience it's a very friendly community (it almost creeps me out how nice everyone is, even on IRC). Install Rakudo, try to break it, file bugs. Write testcases. Write implementations for core functions, write modules. There's plenty to do!
As for specific dates, as per this post on 04/08/2010, the first major release of the most far-ahead Perl 6 implementation - Rakudo (on Parrot VM) - named "Rakudo Star 1.0" is tentatively aimed at Q2 2010 (original plan was around April 2010 but was shifted due to personal circumstances involving lead developer).
Of course, YMMV - I have seen people use a LOT less stable code/projects in production (including what they themselves wrote) than Perl 6's current state. But I personally wouldn't even begin to dream about deploying Perl 6 until it's been widely released for a while.
However, please note a very important point: the above does not mean that Perl 6 is vaporware or that it should not be learned - it does sound like it's progressing well and therefore I personally intend to start digging into it (well, already have thanks to SO) ahead of time so I'm ready to use it when it's stabilized a bit.
In addition, I'd like to add that a large chunk of great Perl 6 functionality was back-ported to Perl 5 (in 5.10-5-12, and see Perl6:: modules), so the above point about learning Perl6 is extremely relevant even if you don't have immediate plans to deploy Perl 6 itself.
Perl 6 was just officially released a few days ago, this Christmas 2015. Two very important things were released actually.
First and most importantly the official and now stable language specification, Perl 6.c (c for Christmas), was released. The specification is a suite of over 120,000 tests known as the Perl 6 Roast (Repository of All Spec Tests) which can be found on Github under perl6/roast.
Second, a new version of an implementation of Perl 6, known as Rakudo, was released. Rakudo is a Perl 6 compiler running on the MoarVM and JVM virtual machines. This new version of Rakudo targets the 6.c language specification and passes all tests on several major architectures. More information about the release can be found at on Github at rakudo/rakudo and in particular in the 2015.12 announcement under rakudo/rakudo/blob/nom/docs/announce/2015.12.md.
Rakudo is fairly straightforward to install, I personally recommend using rakudobrew which is a Rakudo installation manager. Follow the instructions here https://github.com/tadzik/rakudobrew. In addition to installing Rakudo and MoarVM it can also install Panda which is a Perl 6 module installer.
As a long-time Perl 5 and Python software developer I have to say Perl 6 looks to be an extremely powerful and deep language that solves many of the problems I find with existing dynamic languages. To take directly from the Rakudo announcement:
Retains the core values of Perl: expressiveness, getting the job done, taking influences from natural language, and pushing the boundaries of language design.
Has clean, modern syntax, rooted in familiar constructs but revisiting and revising the things that needed it.
Is truly multi-paradigm, enabling elegant object-oriented, functional, procedural, and concurrent programming
Serves as a great glue language, allowing for easy calling of C/C++ (using NativeCall) and staying compatible with Perl 5 (via Inline::Perl5).
Provides composable constructs for working with asynchronous data and parallel computations
Dramatically reforms and sets a new standard in regex syntax, which scales up to full grammars, powerful enough to parse Perl 6 itself
Has outstanding Unicode support, with strings working at grapheme level
Values lexical scoping and encapsulation, enabling easy refactoring
Is extensible through meta-object programming, user-defined operators, and traits
All the information you want to know about Perl 6 can be found here http://perl6.org/.
Interesting blog posted today by Leon Timmermans about some of the differences coming out in Perl 6. Why Perl 6 Is Different Not much talk about when those differences will come out.
发布评论
评论(4)
首先,也是最重要的一点,请关注第六颗行星新闻聚合器。包括来自主要开发人员和社区许多成员的 Perl 6 每周会议和博客,这是跟上 Perl 6 进展的好方法。了解
Rakudo Perl(领先的 Perl 6 实现)的进展情况,查看 Perl 6 降临节日历。每天都会展示 Perl 6 的不同方面,以及 Rakudo 目前实现它的程度。
更新(2012 年 3 月):perl6.org 的功能比较显示了 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 的第一个“可用”(稳定)版本被称为“乐道之星”。目前计划于 2010 年第二季度(4 月至 6 月)进行。总的想法是实现 Perl 6 的大部分(不是整个语言,而是它的一个有用的子集)并最大限度地减少错误。至于生产准备,Perl 6 总是有一个“圣诞节”的发布日期。也许今年圣诞节,更有可能是别的事情。您还需要很长一段时间才能使用整个 Perl 6,没有错误,但我们至少很快就会看到一个稳定的版本,并希望 Perl 6 的炒作一旦人们发现它是真实的,就会像滚雪球一样滚雪球。
如果您对 Perl 6 感兴趣,您可以考虑加入社区。根据我的经验,这是一个非常友好的社区(每个人都非常友善,甚至在 IRC 上也让我感到毛骨悚然)。安装 Rakudo,尝试破解它,提交错误。编写测试用例。编写核心功能的实现,编写模块。有很多事情要做!
Firstly, and most importantly, follow the Planet Six news aggregator. Perl 6 weekly meetings and blogs from the lead developers and many members of the community are included, and it's a great way to keep up on the progress of Perl 6.
To get an idea of how Rakudo Perl, the leading Perl 6 implementation is doing, check out the Perl 6 Advent Calendar. Every day shows a different facet of Perl 6, and the extent to which it has been implemented right now by Rakudo.
Update (Mar 2012): perl6.org's feature comparison shows the implementation progress of both Rakudo and Niecza (a CLR-targeting compiler, e.g. .NET, Mono).
Perl 6, as a specification, is still undergoing constant refinement and refactoring. Some examples of where the spec is unclear: the object hierarchy, what should and should not be part of the core library, date handling, laziness, 'auto-threading' of junctions. But the bulk of the language has been finalised. The spec is very ambitious, and IMHO is one of the major reasons why Perl 6 has taken so long to get going.
In terms of implementation, the leading project is Rakudo Perl 6, built on top of the Parrot VM. There are perhaps a dozen dedicated developers and many more who are helping test, write libraries, code and documentation. Most development work is funded by grants from the Perl Foundation and community, so there is no reason to expect it to peter out.
Rakudo has plenty of bugs and plenty of missing functionality. It has only recently undergone a huge refactoring - the 'ng' branch. Browse any existing Perl 6 source and you'll find plenty of comments saying "Rakudobug" or "Rakudo doesn't yet implement this..."
Even so, this paints an unfair picture of Rakudo. The Perl 6 specification is ambitious to say the least. The language has such an insane number of features that it has taken implementations years of development to get to the level they are at today. Rakudo is certainly complete enough for people to have written text-based games, wikis and other web applications in, and it's getting better every day. Developers have written around 40,000 unit tests for Perl 6 so far, so it's easy to see improvements in the implementation (Rakudo currently passes ~30k tests, or 79% of the test-suite)
The first "usable" (stable) release of Rakudo is known as 'Rakudo Star'. It is currently planned for Q2 2010 (April-June). The general idea was to implement a large portion of Perl 6 - not the whole language, but a useful subset of it - and minimise bugs. As for production ready, Perl 6 has always had a release date of "Christmas". Perhaps this Christmas, more likely something else. It's going to be a long time before you can use the whole of Perl 6, bug-free, but we're at least going to see a stable release very soon, and hopefully the hype for Perl 6 will snowball from there once people discover that it's real.
If you are interested in Perl 6, you might consider getting involved in the community. From my experience it's a very friendly community (it almost creeps me out how nice everyone is, even on IRC). Install Rakudo, try to break it, file bugs. Write testcases. Write implementations for core functions, write modules. There's plenty to do!
注意:请检查原始答案的日期。截至 2020 年 4 月,情况已不再如此。
Perl 6 尚未使用最常见的按照 SO 自己的线程定义“生产就绪” - 生产就绪实现不稳定并且可能缺乏规范的完整功能。
请参阅此答案以了解截至 2008 年的状态详细信息< /a>.语言规范似乎很稳定(至少按照链接帖子中的 brian d foy 的说法),但尚未实现。
至于具体日期,根据这篇文章于 2010 年 4 月 8 日,这是该项目的第一个主要版本最领先的 Perl 6 实现 - Rakudo(在 Parrot VM 上) - 名为“Rakudo Star 1.0”暂定于 2010 年第 2 季度(原计划于 2010 年 4 月左右,但由于涉及铅的个人情况而改变)开发商)。
当然,YMMV - 我看到人们在生产中使用了很多比 Perl 6 当前状态不稳定的代码/项目(包括他们自己编写的代码/项目)。但就我个人而言,在 Perl 6 广泛发布一段时间之前,我什至不会开始梦想部署它。
但是,请注意非常重要的一点:上述内容并不意味着 Perl 6 是蒸气软件或者不应该学习它 - 它听起来确实进展顺利,因此我个人打算开始深入研究它(嗯,已经感谢SO)提前所以我准备在它稳定一点时使用它。
此外,我想补充一点,Perl 6 的大部分功能已向后移植到 Perl 5(在 5.10-5-12 中,请参阅 Perl6:: 模块),因此即使您没有立即计划部署 Perl 6 本身,上述关于学习 Perl6 的观点也非常相关。
Note: Please check the date of the original answer. As of April 2020, this is no longer the case.
Perl 6 is not production ready using most common definitions of "producion ready" as per SO's own thread - the implementations are not stable and possibly lack full features of the specification.
Please see this SO answer for details on the status as of 2008. The language specification seems stable (at least as per brian d foy in the linked post) but the implementation is not there yet.
As for specific dates, as per this post on 04/08/2010, the first major release of the most far-ahead Perl 6 implementation - Rakudo (on Parrot VM) - named "Rakudo Star 1.0" is tentatively aimed at Q2 2010 (original plan was around April 2010 but was shifted due to personal circumstances involving lead developer).
Of course, YMMV - I have seen people use a LOT less stable code/projects in production (including what they themselves wrote) than Perl 6's current state. But I personally wouldn't even begin to dream about deploying Perl 6 until it's been widely released for a while.
However, please note a very important point: the above does not mean that Perl 6 is vaporware or that it should not be learned - it does sound like it's progressing well and therefore I personally intend to start digging into it (well, already have thanks to SO) ahead of time so I'm ready to use it when it's stabilized a bit.
In addition, I'd like to add that a large chunk of great Perl 6 functionality was back-ported to Perl 5 (in 5.10-5-12, and see Perl6:: modules), so the above point about learning Perl6 is extremely relevant even if you don't have immediate plans to deploy Perl 6 itself.
Perl 6 前几天刚刚正式发布,也就是 2015 年圣诞节。实际上发布了两个非常重要的东西。
首先也是最重要的是,官方且现已稳定的语言规范 Perl 6.c(c 代表圣诞节)发布了。该规范是一套超过 120,000 个测试的套件,称为 Perl 6 Roast(R存储库of All Spec Tests),可以在 Github 上的 perl6/roast 下找到。
其次,发布了 Perl 6 实现的新版本,称为 Rakudo。 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 6 的所有信息都可以在这里找到 http://perl6.org/。
Perl 6 was just officially released a few days ago, this Christmas 2015. Two very important things were released actually.
First and most importantly the official and now stable language specification, Perl 6.c (c for Christmas), was released. The specification is a suite of over 120,000 tests known as the Perl 6 Roast (Repository of All Spec Tests) which can be found on Github under perl6/roast.
Second, a new version of an implementation of Perl 6, known as Rakudo, was released. Rakudo is a Perl 6 compiler running on the MoarVM and JVM virtual machines. This new version of Rakudo targets the 6.c language specification and passes all tests on several major architectures. More information about the release can be found at on Github at rakudo/rakudo and in particular in the 2015.12 announcement under rakudo/rakudo/blob/nom/docs/announce/2015.12.md.
Rakudo is fairly straightforward to install, I personally recommend using rakudobrew which is a Rakudo installation manager. Follow the instructions here https://github.com/tadzik/rakudobrew. In addition to installing Rakudo and MoarVM it can also install Panda which is a Perl 6 module installer.
As a long-time Perl 5 and Python software developer I have to say Perl 6 looks to be an extremely powerful and deep language that solves many of the problems I find with existing dynamic languages. To take directly from the Rakudo announcement:
All the information you want to know about Perl 6 can be found here http://perl6.org/.
Leon Timmermans 今天发布了一篇有趣的博客,介绍了 Perl 6 中出现的一些差异。
为什么 Perl 6 不同 没有太多讨论这些差异何时会显现出来。
Interesting blog posted today by Leon Timmermans about some of the differences coming out in Perl 6.
Why Perl 6 Is Different Not much talk about when those differences will come out.