【问题标题】:I know Perl 5. What are the advantages of learning Perl 6, rather than moving to Python? [closed]我知道 Perl 5。学习 Perl 6 而不是转向 Python 有什么好处? [关闭]
【发布时间】:2010-09-12 13:58:08
【问题描述】:

来自 Perl 5 背景,迁移到 Perl 6 或 Python 有哪些优势?

【问题讨论】:

    标签: python perl raku


    【解决方案1】:

    从 Perl 切换到 Python 没有任何好处。从 Python 切换到 Perl 也没有任何优势。他们都同样有能力。根据您所知道的和您正在尝试解决的问题来选择您的工具,而不是基于某种观念,即一种在某种程度上天生就比另一种更好。

    唯一真正的优势是,如果您从一种您不知道的语言切换到一种您知道的语言,那么您的工作效率可能会提高。

    【讨论】:

    • 你说,“根据你所知道的和你要解决的问题来选择你的工具”,但目前,我两种语言都不会,也不知道哪些方面我试图解决的问题适合哪种语言。这就是我问这个问题的原因。
    • @raldi - Perl 6 与 Perl 5 没有太大区别,因此您了解一种语言的大部分内容。在我看来,Python 与 Perl 5 甚至没有什么不同,而且很多 Perl 知识将延续到 Python 中。
    • 这些都没有添加任何信息来帮助提问者(和我)决定任何一种方式。这是一个相当空洞的答案。
    【解决方案2】:

    Python 没有Junctions。事实上,我认为到目前为止只有 Perl 有 Junctions。 :-)

    【讨论】:

    • 我和其他人已经为 Python 创建了“连接”,只是没有这样命名,您可以在其中执行以下操作:al= [1, 2, 3, 4]; al1=全部(al)+1; if Any(al) > 3: 打印“some true”。
    • Perl 6 中的联结可以做的远不止这些。你的联结可以自动线程吗?
    • 不,不是我的。联结自动线程是否已经提高了程序的速度?如果是,是什么因素?
    • 连接主要不是关于速度,而是关于可读性。
    【解决方案3】:

    在我看来,Python 的语法更干净、更简单、更一致。您可以在任何地方定义相同的嵌套数据结构,无论您打算将它们传递给函数(或从函数返回)还是直接使用它们。我非常喜欢 Perl,但是一旦我学会了足够多的 Python 来“掌握”它,我就再也没有回头。

    根据我的经验,Python 的随机 sn-ps 往往比 Perl 的随机 sn-ps 更具可读性。差异实际上归结为每种语言的文化,Perl 用户通常喜欢聪明,而 Python 用户更喜欢清晰。这并不是说你不能拥有清晰的 Perl 或狡猾的 Python,但这些都不太常见。

    两者都是很好的语言,可以解决许多相同的问题。我个人倾向于 Python,如果没有其他原因,因为它似乎正在获得动力,而 Perl 似乎正在失去 Python 和 Ruby 的用户。

    请注意上面的大量黄鼠狼词。老实说,这真的取决于个人喜好。

    【讨论】:

    • 你的答案可能属于相反的问题;这个问题提供了一个链接。
    • 问题是 Python 的随机 sn-ps 有时不起作用,因为它们粘贴的位置没有正确保留空白
    • 如果 Python 更加一致,那为什么数组索引是一个单独的语法呢?为什么列表推导与大多数其他代码不同?为什么 lambda 只限于一行代码,而这需要与您可能编写的不同的语法?还有一个问题是关于 Perl6,它现在被称为 Raku。在 Raku 中,我之前谈到的所有这些都使用完全相同的语法。说 Raku 出奇地一致是一个常见的比喻。主要是因为它在表面上是一致的,而且在大多数语言(包括 Python)所不具备的深层基本方式上也是一致的。
    【解决方案4】:

    Perl 通常比 python 更适合快速一行,尤其是涉及文本/正则表达式
    http://novosial.org/perl/one-liner/

    【讨论】:

      【解决方案5】:

      Python 有一个巨大的优势:它已实现,有一个相当稳定的编译器。

      Perl 6(2019 年更名为 Raku)是一种颇具远见的语言,2015 年发布了 stable compiler 和测试规范。它有一组非常酷的特性,其中包括:连接、语法(是的,你可以编写带有 Raku“正则表达式”的完整解析器)、字形级别的 unicode 处理和惰性列表。

      在您了解 Perl 5 的特定情况下,您会很快熟悉 Raku(née Perl 6)语法。

      有关 Raku 具有哪些酷炫功能的更全面列表,请参阅 https://raku.org/the FAQ

      【讨论】:

      • 你的答案可能属于相反的问题。
      • 我是一个 perl 人,但你会因为给 Perl6 提供“有远见的语言”而得到 +1。
      【解决方案6】:

      Python 的主要优势在于现在可以以生产就绪的格式使用。

      如果您需要与 Java 或 .net clr 密切合作,Python 有 Jython 和 IronPython。

      Perl 6 的优点是基于与 Perl (1-5) 相同的原理;如果您喜欢 Perl,出于同样的原因,您也会喜欢 Perl 6。 (有不止一种方法可以做到,等等)

      Perl 6 还具有仅部分实现的优势:如果您想破解语言内部结构或帮助定义标准库,这是开始使用 Perl 6 的好时机。

      编辑:(2011) 现在仍然是破解 Perl6 内部结构的好时机,但现在有一个更加成熟、可用的 Perl6 发行版,Rakudo Star。如果你现在想使用 Perl6,那是个不错的选择。

      【讨论】:

      • Python 优于 Perl 家族的一个领域是 Python 中有大量强大的绘图、数据分析和机器学习库。 Perl 家族远远落后。除了这些,两个都不错。
      【解决方案7】:

      您还没有说明为什么要离开 Perl*。如果我的水晶球今天能正常工作,那是因为你不完全了解这种语言,所以它让你感到沮丧。

      坚持使用 Perl 并好好学习这门语言。如果你这样做了,那么有一天你将成为一位大师,并且知道为什么你的问题是无关紧要的。启蒙会降临到那些寻求它的人身上。

      • 您称它为“Perl5”,但没有这种语言。 :P

      【讨论】:

      • 我认为 Perl5 是一种语言。我是五爷! :D
      • Perl 5.10 出来了,但是你说 Perl 5 不存在?
      • 相反,在 PerlMonks 和 Enlightened Perl Organzation 的“Perl Iron Man Challenge”中有很多人都认为 Perl5 是一种语言,而 Perl6 是一种不同的(但相关的)语言。我读的问题不是“我想摆脱 Perl”,而是“我相信 Perl5 即将消失,那么当这种情况发生时我应该去哪里?”,在这种情况下,正确的答案真的是“ Perl5 不会很快消失,所以不要担心。”
      • 我从未说过 Perl 5 不存在。我根本不考虑 Perl“Perl5”的当前咒语。如果拉里希望它这么叫,他会这么叫。 :P
      【解决方案8】:

      IMO python 的正则表达式,特别是。当您尝试像 s/whatever/somethingelse/<b>e</b> 那样表示 perl 的 /e 运算符时,会变得非常慢。所以有疑问,你可能需要继续使用 Perl5 :-)

      【讨论】:

        猜你喜欢
        • 2010-11-02
        • 2010-10-10
        • 1970-01-01
        • 2010-09-09
        • 1970-01-01
        • 2023-04-09
        • 1970-01-01
        • 2011-09-02
        • 2010-09-18
        相关资源
        最近更新 更多