【发布时间】:2010-09-12 13:58:08
【问题描述】:
来自 Perl 5 背景,迁移到 Perl 6 或 Python 有哪些优势?
【问题讨论】:
来自 Perl 5 背景,迁移到 Perl 6 或 Python 有哪些优势?
【问题讨论】:
从 Perl 切换到 Python 没有任何好处。从 Python 切换到 Perl 也没有任何优势。他们都同样有能力。根据您所知道的和您正在尝试解决的问题来选择您的工具,而不是基于某种观念,即一种在某种程度上天生就比另一种更好。
唯一真正的优势是,如果您从一种您不知道的语言切换到一种您知道的语言,那么您的工作效率可能会提高。
【讨论】:
Python 没有Junctions。事实上,我认为到目前为止只有 Perl 有 Junctions。 :-)
【讨论】:
在我看来,Python 的语法更干净、更简单、更一致。您可以在任何地方定义相同的嵌套数据结构,无论您打算将它们传递给函数(或从函数返回)还是直接使用它们。我非常喜欢 Perl,但是一旦我学会了足够多的 Python 来“掌握”它,我就再也没有回头。
根据我的经验,Python 的随机 sn-ps 往往比 Perl 的随机 sn-ps 更具可读性。差异实际上归结为每种语言的文化,Perl 用户通常喜欢聪明,而 Python 用户更喜欢清晰。这并不是说你不能拥有清晰的 Perl 或狡猾的 Python,但这些都不太常见。
两者都是很好的语言,可以解决许多相同的问题。我个人倾向于 Python,如果没有其他原因,因为它似乎正在获得动力,而 Perl 似乎正在失去 Python 和 Ruby 的用户。
请注意上面的大量黄鼠狼词。老实说,这真的取决于个人喜好。
【讨论】:
Perl 通常比 python 更适合快速一行,尤其是涉及文本/正则表达式
http://novosial.org/perl/one-liner/
【讨论】:
Python 有一个巨大的优势:它已实现,有一个相当稳定的编译器。
Perl 6(2019 年更名为 Raku)是一种颇具远见的语言,2015 年发布了 stable compiler 和测试规范。它有一组非常酷的特性,其中包括:连接、语法(是的,你可以编写带有 Raku“正则表达式”的完整解析器)、字形级别的 unicode 处理和惰性列表。
在您了解 Perl 5 的特定情况下,您会很快熟悉 Raku(née Perl 6)语法。
有关 Raku 具有哪些酷炫功能的更全面列表,请参阅 https://raku.org/ 或 the FAQ。
【讨论】:
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,那是个不错的选择。
【讨论】:
您还没有说明为什么要离开 Perl*。如果我的水晶球今天能正常工作,那是因为你不完全了解这种语言,所以它让你感到沮丧。
坚持使用 Perl 并好好学习这门语言。如果你这样做了,那么有一天你将成为一位大师,并且知道为什么你的问题是无关紧要的。启蒙会降临到那些寻求它的人身上。
【讨论】:
IMO python 的正则表达式,特别是。当您尝试像 s/whatever/somethingelse/<b>e</b> 那样表示 perl 的 /e 运算符时,会变得非常慢。所以有疑问,你可能需要继续使用 Perl5 :-)
【讨论】: