26

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

4

8 回答 8

25

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

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

于 2008-09-24T00:54:03.857 回答
14

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

于 2008-09-24T07:28:18.447 回答
11

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

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

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

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

于 2008-09-24T00:55:42.260 回答
8

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

于 2008-09-23T23:53:44.373 回答
6

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

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

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

有关 Raku 具有哪些酷炫功能的更全面列表,请参阅https://raku.org/常见问题解答

于 2008-09-24T07:51:23.697 回答
5

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,那是一个不错的选择。

于 2009-11-09T19:29:41.197 回答
4

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

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

  • 你称它为“Perl5”,但没有这样的语言。:P
于 2008-09-24T14:49:34.160 回答
4

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

于 2010-11-28T00:26:46.243 回答