我知道的Perl 5.什么是学习Perl 6的,而不是移动到Python的优势是什么? [关闭]

2019-07-31 15:35发布

从一个Perl 5背景的人,有什么移动到Perl 6的或Python的优势是什么?

编辑:如果你downvoted这一点,因为你认为它只是flamebait, 请阅读下面的答案。 他们不是呓语参数; 他们精心编写每种语言的利弊的讨论。 给堆栈溢出社会一些信贷。

Answer 1:

没有通过切换从Perl来Python中获得优势。 也没有通过切换从Pyt​​hon中的Perl来获得优势。 他们都同样有能力。 请根据你所知道的,问题你正在努力,而不是解决对某种概念,一个是莫名其妙天生优于其他的工具。

唯一真正的好处是,如果你是从你不知道你懂得的语言,在这种情况下,您的工作效率可能会去一个语言切换。



Answer 2:

Perl 6的拥有蟒蛇一些强大的功能。 我认为这些都是功能Python 3里没有:

  • 一个可扩展的,但是可选的类型系统
    • 包括多方法分派和类型检查
    • 即使是内建和“经营者”
    • 与子类型
  • 角色:非实例化类的代码重用(又名混入)
    • 超过大多数混入一些额外的好处:
    • 编译时方法名碰撞检查,
    • 能力要求,在角色定义,某些方法是存在于宿主类,然后调用主类的方法中的作用的实施。
  • 语法(返回的结构化数据的正则表达式的组合物)
  • 强大的扩展正则表达式。 比Python的内置正则表达式的能力票友。
  • 路口和路口类型
  • Metaoperators
  • 定义CIRCUMFIX,postcircumfix,中缀,前缀和后缀运营商的能力。
  • 从理论上讲,有能力与AST结构化的数据。 (又名:口齿不清宏)
  • 块作用域
  • 用于产生封闭件的任何表达的术语*
  • 隐含的并发构建体([]间位,路口)
  • 声明并发构建(超了)
  • 主子关闭其功能签名到命令行界面和命令行用法指南。
  • 懒惰的名单(但你可以滚你自己用发电机)

而且这股与Python对Perl 5以下优点:

  • 一个“类”,类关键字和相关糖的概念**:
    • 自关键词
    • 的getter / setter糖私人数据的概念
  • 良好限定的,可访问的元对象协议
  • 伟大的Unicode支持
  • 伟大的日期/时间支持内置
  • 在一般情况下,“电池列入” - 大量的内置函数
  • 非全局范围变量默认

Perl6的实现不是100%完成,或调整不够使用的“性能敏感”的应用程序特定的值。 但是,这是需要的用例95-99%的规范的80-90%是完全Rakudo,现在*

*我忽略了对异步I / O的任何规定。 规范的那部分是在不断变化。

**虽然流行麋项目提供了这个在Perl 5。



Answer 3:

Python没有 。 事实上,我认为只有Perl有结为止。 :-)



Answer 4:

在我看来,Python的语法是更清洁,更简单,一致的。 你到处都可以定义嵌套的数据结构相同,你是否打算将它们传递给函数(或者从一个归还),或直接使用它们。 我喜欢Perl的很多,但只要我学到足够的Python来“搞定”它,我从来没有回头。

根据我的经验,Python中的随机片段往往比Perl的随机片段更具可读性。 所不同的真的可以归结为各地每种语言的文化中,Perl的用户经常欣赏聪明而Python用户更常常喜欢清晰度。 这并不是说你不能有明确的Perl或Python的狡猾,但这些都是很少见。

两者都是精细的语言和解决了许多相同的问题。 我个人对瘦的Python,如果没有其他原因,它似乎是蓄势待发,而Perl中似乎失去了用户Python和Ruby。

需要注意的遁词在上面的丰度。 老实说,这真的要归结为个人喜好。



Answer 5:

Perl是一般比Python更好地为快速一个衬垫,尤其是涉及文/正则表达式
http://novosial.org/perl/one-liner/



Answer 6:

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

Perl 6的是一个相当有远见的语言,没有任何地方几乎足够稳定生产。 但它有一套非常酷的功能,其中包括:路口,语法(是的,你可以写全分析器与Perl 6的“正则表达式”)在石墨烯的水平,统一处理,懒惰的名单和强大的宏。

在当你知道的Perl 5您的特定情况下,你会得到熟悉的Perl 6的语法非常快。

对于什么很酷的功能,Perl 6的都有,看到一个更全面的列表的常见问题解答 。



Answer 7:

你还没说你为什么要在Perl搬走*。 如果我的水晶球生活功能那是因为你不知道完全的语言,所以它让你失望。

用Perl坚持和学习语言好。 如果你做的那么有一天你会成为大师,知道为什么你的问题是无关紧要的。 启示是属于那些寻求它。

  • 你把它称为“Perl5的”,但没有这样的语言。 :P


Answer 8:

Python有今天的生产就绪的格式是可用的一大优势。

Python有Jython和IronPython的,如果你需要使用Java或.NET CLR紧密合作。

Perl 6的具有基于所述相同的原理,Perl的(1-5)的优点; 如果你喜欢Perl中,你会喜欢的Perl 6出于同样的原因。 (有这样做,等超过单程)

Perl 6的也有仅部分实现的优势:如果你想破解的语言内部或有助于确定标准库,这就是要在Perl 6日开始的好时机。

编辑 :(2011)它仍然是一个伟大的时间来破解的Perl6内部,但现在有一个更成熟,可用Perl6分布, Rakudo星 。 如果你想利用今天Perl6,这是一个很好的选择。



Answer 9:

IMO python的regexing,ESP。 当您试图代表像Perl的/ E运营商在s/whatever/somethingelse/ e ,变得相当缓慢。 所以在怀疑,你可能需要留在Perl5的:-)



文章来源: I know Perl 5. What are the advantages of learning Perl 6, rather than moving to Python? [closed]