08 March 2005
This post may be outdated due to it was written on 2005. The links may be broken. The code may be not working anymore. Leave comments if needed.
English version: http://dev.perl.org/perl6/synopsis/S01.html
本简体版本参考了 plasma 翻译的繁体版本。它将列于 http://svn.openfoundry.org/p6l10n/zh_cn/S01.pod




Larry Wall <[email protected]>


  Maintainer: Luke Palmer 
  Date: 10 Aug 2004
  Last Modified: 18 Aug 2004
  Number: 1
  Version: 0

This document summarizes Apocalypse 1, which covers the initial design concept. (These Synopses also contain updates to reflect the evolving design of Perl 6 over time, unlike the Apocalypses, which are frozen in time as ``historical documents''. These updates are not marked--if a Synopsis disagrees with its Apocalypse, assume the Synopsis is correct.)

这份文档是对涵盖了最初设计概念的启示录一的总结。(这些纲要还会更新,以 反映随着时间而演变的 Perl 6 设计,这不同与做为“历史文献”的启示录,它们 已被冻结而不再更新。这些更新不会被标出来——如果纲要与启示录有所抵触,请 以纲要为准。)

The other basic assumption is that if we don't talk about something in these Synopses, it's the same as it was in Perl 5.

另一个基本假设为,如果某样东西没有在这些纲要中提起,那就跟 Perl 5 中是一样的。

Random Thoughts / 随想

  • The word ``apocalypse'' historically meant merely ``a revealing'', and we're using it in that unexciting sense.


  • If you ask for RFCs from the general public, you get a lot of interesting but contradictory ideas, because people tend to stake out polar positions, and none of the ideas can build on each other.

    如果你向一般公众请求 RFCs, 你会得到一堆有趣却相互抵触的主意,这是因为 每个人的立足点都不相同,而且这些主意都没办法互为基石。

  • Larry's First Law of Language Redesign: Everyone wants the colon.

    Larry 语言重设计第一定律:人人都要冒号。

  • RFCs are rated on ``PSA'': whether they point out a real Problem, whether they present a viable Solution, and whether that solution is likely to be Accepted as part of Perl 6.

    ``PSA'' 是用来评价 RFCs 的工具:他们是否找出了实际存在的问题(Problem), 他们是否给出了可行性解答方案(Solution),还有这个方案能不能被接受为 Perl 6 的一部分。

  • Languages should be redesigned in roughly the same order as you would present the language to a new user.


  • Perl 6 should be malleable enough that it can evolve into the imaginary perfect language, Perl 7. This darwinian imperative implies support for multiple syntaxes above and and multiple platforms below.

    Perl 6 应当有足够的可延展性,这样它可以进一步进化成想像中的完美语言, Perl 7. 这种达尔文天命暗示着对上要支持多语法,对下要支持多平台。

  • Many details may change, but the essence of Perl will remain unchanged. Perl will continue to be a multiparadigmatic, context-sensitive language. We are not turning Perl into any other existing language.

    许多细节或许会改变,但 Perl 的本质不会有任何变化。Perl 仍然是多例证的, 上下文相关的语言。我们不会把 Perl 变成现有的其他语言。

  • Migration is important. The perl interpreter will assume that it is being fed Perl 5 code unless the code starts with a ``class'' or ``module'' keyword, or you specifically tell it you're running Perl 6 code in some other way, such as by:

    移植是非常重要的。perl 解释器会假设它所收到的是 Perl 5 代码,除非代码以 ``class'' 或 ``module'' 关键字开始,或者你用其它方式明确地告诉它你要运行 Perl 6 代码:

        use v6.0;

  • Scaling is one of those areas where Perl needs to be multiparadigmatic and context sensitive. Perl 5 code is not strict by default, while Perl 6 code is. But it should be easy to relax with -e or maybe even a bare version number:

    延展性是另一个 Perl 为什么要是多例证和上下文相关的地方。Perl 5 代码默认并非 语法严格的,不过 Perl 6 是。但是你可以很简单地用 -e 来关闭它,或者仅仅用 一个单纯的版本号:

        perl -e '$x = 1'
        #!/usr/bin/perl -e
        $x = 1;
        v6; $x = 1;

  • It must be possible to write policy metamodules that invoke other modules on the user's behalf.


  • If you want to treat everything as objects in Perl 6, Perl will help you do that. If you don't want to treat everything as objects, Perl will help you with that viewpoint as well.

    如果你想要将 Perl 6 的每样东西都视为对象,Perl 会帮你做到。如果你不想 如此,Perl 也会依你。

  • Operators are just functions with funny names and syntax.


  • Language designers are still necessary to synthesize unrelated ideas into a coherent whole.


blog comments powered by Disqus