Python与其他脚本语言相比如何?

1 投票
3 回答
1341 浏览
提问于 2025-04-16 02:36

我正在学习Python(这是我学的第一门编程语言,所以请不要太严厉地评价)我想知道Python和其他脚本语言,比如Perl和Ruby相比,表现如何。Python在哪些方面比其他脚本语言更好,又在哪些方面表现得不如它们呢?

3 个回答

2

这里有一个很好的介绍,讲述了为什么Python(这门语言)是开始编程的一个很不错的选择:http://www.python.org/about/

Python自带了一个非常全面的标准库(也就是“自带电池”),这让你可以解决很多编程问题。

一旦你学会了Python,我建议你也去学其他语言,比如Ruby,因为不同的编程语言提供了不同的思维方式,这样可以拓宽你对计算模型的理解。

6

我正在学习Python(这是我学的第一门编程语言,所以请不要太严厉),我想知道它和其他脚本语言,比如Perl和Ruby相比怎么样。Python在哪些方面比其他脚本语言更好,在哪些方面又不如它们呢?

在我看来。

我尝试过Python 2.x一段时间,然后又回到了Perl和C++。

Python的优点在于,它的可移植性更好,还有现代的图形用户界面库。在某些地方,标准库也非常不错(我特别喜欢随机数功能)。在算术表达式的执行速度上,Python比Perl快。

Python的缺点是,文档不够完善。没有警告,类型检查也很弱,加上语言的动态特性,使用起来很麻烦。学习起来简单,但使用起来困难,主要是因为优化器不成熟,导致在开发初期就需要考虑性能问题(这让我有时想起Pascal)。面向对象的编程现在也很混乱:旧式和新式类之间的不同之处没有很好地说明;库里也没有提到它们定义了什么类型的类。

文档不完善这一点应该特别提到。有很多标准函数,但它们的用途并没有明确说明,也没有给出好的例子。而在Perl中,很多标准函数的说明会在perldoc perlguts里找到。总之,用Google查找资料要快得多。

缺乏警告和类型检查(与Perl的use warnings/use strict和子程序原型相比)最终让我选择回到其他语言。部分原因是我写代码的速度比我读代码的速度快,所以我希望编译器/解释器能告诉我哪里写错了。

另外,抱歉,我还是想提一下Python:用缩进来表示代码结构有点奇怪。我并不介意这个,对于短函数来说,这样很好。但经过一周后,我发现我读Python代码的速度比读C++或Perl慢,主要是因为我总是要额外检查语句是否真的结束。如果代码不在一个屏幕内,就得不停地按PgDown/PgUp来查看。之前我从未如此感激{}的存在。

总的来说,Python现在有点混乱。虽然我会继续关注它,但还不够成熟,无法满足我的日常需求。如果我现在要决定学习Python,我会选择等Python 3.x成熟后再学。现在用Python 2.x学到的很多东西在Python 3.x中可能没用。而且目前Python 3.x也不太好用,因为很多库还没有移植过来。

附言:我遇到的最糟糕的部分是函数指针。我在需要它们之前就发现了它们,我写了start_time = time.timetime_elapsed = time.time() - start_time。半小时后,当脚本结束时,我没有看到结果,而是得到了一个漂亮的解释器异常,告诉我不能减去函数对象。那半小时是因为我按照教程学的标准for循环。后来我查找的优化(rangexrange,手动展开循环)让脚本在不到一分钟内就运行完了。

10

首先,给你一个建议——要关注来自不同观点的积极评价。也就是说,你应该更信任与Python相关的来源对Perl的正面评价(或者与Perl相关的来源对Python的正面评价),而不是相反的情况。

原因有两个:

1) 喜欢Python的人通常不会轻易说Perl的好话,除非他们真的想客观评价(这正是你希望的)。反之亦然——这其实是人类的偏见和动机问题,而不是Perl或Python本身的问题。

2) 写这种比较文章的人,往往对他们不喜欢的语言了解得很少,甚至完全错误。作为证据,可以看看这篇文章:http://python.about.com/od/gettingstarted/ss/whatispython_5.htm——它对Perl的描述,温和地说,简直就是胡说八道。我相信Perl的粉丝也会有同样愚蠢的对Python的贬低,只是我对Python了解不够,想不出具体的例子。


其次,请注意,至少对于Perl——我强烈怀疑Ruby和Python也是如此——“脚本语言”这个称呼现在已经不太适用了。

是的,它们(尤其是Perl)的起源与shell脚本有些关系,确实有一小部分功能可以用来写shell脚本,这样的小任务也确实很简单且高效。

然而,到了现在,Perl的历史已经很长,它的功能远远不止于此,已经被用来开发从脚本到网络框架、服务器、大型企业软件,再到生物信息学软件的各种应用。


第三,请看看这个链接——里面有很多相关链接:

http://wiki.python.org/moin/LanguageComparisons

撰写回答