深入Python与Perl辩论 - 我应该学习Python或Perl?

让我们深入到Python和Perl辩论,并试图找出这两种语言彼此区分的整体方面。

通常当一种新的编程语言被引入时,有一个辩论开始于行业中的一些天才头脑,其中该语言与已经传播其根源的语言进行比较。 一种嗡嗡声通常在IT行业传播,新的通常在每个方面进行比较,然后它可能是功能,语法或核心CPU和内存方面,包括GC时间和所有,与现有的一种。

这样的情况下,许多例子可以从过去的被拾起,调查包括JavaC#之间的争论,C ++等。 这样一个案例的吸引了人们关注的显著量就是出一个接一个地在短短如PythonPerl后两种语言之间的争论。

尽管Python的最初发明作为继任者ABC语言仅仅作为一个“ 业余爱好 ”规划项目(这将吸引的Unix / C黑客)的作家谁的系列,他最大的明星巨蟒命名。

建议阅读: 入门使用Python编程和脚本在Linux中

Perl的是早期作为目的是为了使报告更容易处理一个Unix脚本语言,只是近2年左右。 这是许多语言,包括C,组合的混合物的awksed的shell脚本

值得注意的是,这些不同意图发展的语言正在不断的比较,这使我学习和找出原因,其中一些重要的列举如下:

  1. 两个目标的Unix操作系统,一个为黑客和其他处理报告。
  2. 两者都面向对象(Python是更多)和解释,一个是强类型和明确的,当谈到编码,即Python,和其他允许丑陋打字用大括号表示一个块即Perl
  3. 两者在原则上是相反的,当我们说,Perl有许多方法来做一个单一的任务,而python专注于一个,只有一种方式做事情。

Python vs Perl - 功能比较

让我们深入讨论这个辩论,并尝试找出这两种语言彼此区分的整体方面。 也让我们试着找出真相许多陈词滥调可在业说,听到的源泉“Python是Perl的培训轮子 ”或“Python的PERL相似,但不同的 ”,这样我们可以尝试用一个准确的解决方案,以断定这个永无止境的辩论。

Python的清洁vs Perl的复杂语法

在代码可读性方面,Python比Perl有巨大的优势。 Python的代码比Perl更容易理解,即使在多年后阅读代码。

使用缩进代表代码块,并且适当的结构化,Python的代码是更清洁。 在另一方面的Perl借用它的语法像从各种编程语言:C, shell脚本 ,甚至AWKsed的过滤器,当谈到正则表达式。

推荐阅读: 15有用的“sed的”命令-每日Linux系统管理任务

除此之外,与'{' and '}'表示的代码,并不必要加成嵌段';'在每行的端部,在Perl代码可能会成为一个问题,如果由于月或数年之后读出的是要了解其容忍丑陋的脚本。

2. Perl的内置vs Python的第三方正则表达式和操作系统操作支持

Perl语言从C借用它的语法和其他UNIX命令,像sed,awk等等。 由于它具有方式强大和内置的正则表达式支持,无需导入任何第三方模块。

此外,Perl可以使用内置函数处理OS操作。 在另一方面Python有第三方库这两个操作,即重新正则表达式和操作系统,以做这样的操作之前,必须确保用于OS操作SYS这就需要。

Perl的正则表达式操作已经'sed的 '类似的语法,这使得它易于不仅为搜索业务,但同时更换,替换等操作的字符串可以轻松快捷地操作比python,当一个人需要知道并记住它迎合的功能需要。

例如:考虑一个方案,PerlPython在字符串中搜索数字。

python
Import re
str = ‘hello0909there’
result = re.findall(‘\d+’,str)
print result
Perl
$string =  ‘hello0909there’;
$string =~ m/(\d+)/;
print “$& \n”

你看Perl的语法方式简单,灵感sed命令它接管了Python的语法,其中进口第三方模块'重'的优势。

Python的高级OO编程vs Perl的单线程

一个功能,在Python的掩盖Perl是其先进的OO的编程。Python有广泛的面向对象编程的支持与干净,一致的语法,而对象OOP没有过时Perl中,其中包作为类的替代品。

建议阅读: 入门使用Python Django的Web框架

此外,写OO在Perl代码将增加更多的复杂的代码,这将最终使代码难以理解,甚至在Perl子程序是非常困难的方案,最终以后难以明白。

另一方面,Perl最适合它的一个内核,它可以在命令行上用于执行各种数量的任务。 此外,Perl代码最终可以在比python更少的代码行中执行各种任务。

两种语言的短代码示例,突出显示了Perl在更少的LOC中做更多的能力:

python
try:
with open(“data.csv”) as f:
for line in f:
print line,
except Exception as e:
print "Can't open file - %s"%e
Perl
open(FILE,”%lt;inp.txt”) or die “Can’t open file”;
while(<FILE>) {
print “$_”; } 

优点和缺点 - Python vs Perl

在本节中,我们将讨论Python和Perl的优缺点。

Python PROS:

  1. 有一个干净和优雅的语法,使这种语言作为第一种编程语言的新手谁想要有一个动手任何编程语言的一个伟大的选择。
  2. 拥有非常先进的和固有的OO编程,还线程编程在Python是远远比Perl更好。
  3. 有哪里的Python是首选许多应用领域甚至是它优于类似Perl:Perl是首选的CGI脚本,但现在是一个天Python的Django的web2py的如网页脚本语言正在变得越来越受欢迎,并有巨大的吸引力来自行业。
  4. 有喜欢不同的编程语言的几个痛饮包装:CPython的 ,IronPythonJython和这些发展已经先呷包装为Perl的开发。
  5. Python代码总是很好缩进,易于阅读和理解,即使你正在阅读别人的代码或甚至你的代码多年后。
  6. Python是很好的各种应用,如: 大数据红外线自动化机器学习自然语言处理等,是有因为是开源社区的活跃巨大的支持。

Python CONS:

  1. 有几个领域的执行在Python通常比Perl的,包括慢: 正则表达式和基于字符串的操作。
  2. 有时,很难在Python中获取变量的类型,因为在非常大的代码的情况下,你必须去到结束获取繁琐和复杂的变量类型。

Perl PROS:

  1. Perl具有强大的一个内存,甚至确保UNIX管道像语法,可以在命令行上执行各种任务,也受到Unix及其命令行编程的影响,因此在其编码中集成了许多UNIX影响的命令。
  2. Perl是以其强大的正则表达式和字符串比较操作,因为它是影响中美战略经济对话awk一样强大的UNIX工具。 在像正则表达式和字符串操作的情况下: 替代匹配更换 ,Perl的python胜过这将需要几行代码来实现相同的。 还有许多文件I / O操作,异常处理在Perl上运行得更快。
  3. 当涉及到一种用于生成报告的语言时,Perl自从它被引入以来一直是名声,作为一个主要原因,作者开发语言如Perl是为报告生成。
  4. 许多在那里的Perl发现其使用的应用领域是网络编程系统管理 ,CGI脚本 (这里的Python是克服Perl的使用Django和web2py中)等。
  5. 这是很容易识别变量的类型与Perl的他们之前使用,如符号: '@'标识阵列和'%'标识哈希值。

Perl CONS:

  1. Perl具有非常复杂的代码,这使得新手很难理解。 子程序,甚至其他符号,如: '$`' '$&'等是很难理解和程序经验不足的程序员。 此外,Perl代码当读取将是困难和复杂要了解,除非你有一个质量的经验。
  2. 在Perl OO编程是一个有点过时,因为它从来没有被众所周知的面向对象编程和多种操作,如:线程也对Perl的那么明显。

结论

正如上文其中两个语言是他们按照他们的目标应用方面的良好看出, 巨蟒需要一点优势的Perl作为一个新手的第一选择,因为它的清洁和易于理解的代码,其中作为另一方面的Perl优于Python涉及到字符串操作操作和一些高级一个内核为UN​​IX像操作系统和各种其他操作,它是众所周知的。

所以到底是在你所针对的具体领域。 欢迎您对本文的所有评论,如果根据您的Python胜利或Perl,请您提出您对本主题的意见。