我正在学习Python(这是我的第一个编程语言,所以不要因为你的原因太多)而且我想知道它如何与其他脚本语言叠加,比如Perl和红宝石。与其他脚本语言相比,Python的优点是什么,更糟糕的是什么?
答案 0 :(得分:10)
首先,建议 - 寻找对立面所说的积极事物。意思是,你应该相信与Python相关的消息来源(或者Perl相关来源对Python的积极的说法)所说的Perl的积极的事情远不止相反。
原因有两个:
1)有理由喜欢Python的人不会倾向于对Perl说好话,除非他们真正想要客观(这是你理想的想法)。反之亦然 - 这是人类偏见和动机的问题,而不是Perl或Python。
2)写这种比较偏好一种语言的人通常完全是错误的,而且对于他们不喜欢的那种语言并不是很熟练。有证据表明这篇文章:http://python.about.com/od/gettingstarted/ss/whatispython_5.htm - 对于Perl来说,几乎所有关于Perl的事情都是温和而温和地说出来的。我确信Perl粉丝也有同样愚蠢的Python推文,我从来没有读过足够多的关于Python的内容,能够让我想到最好的。
其次,请注意,至少对于Perl而言 - 我强烈怀疑,对于Ruby和Python--“脚本”语言的绰号不再适用。
是的,他们(特别是Perl)的起源与shell脚本有些联系,是的,一小部分语言功能可以 - 并且 - 用于编写shell脚本,并使这个小任务变得非常简单和极其高效。
然而,在其悠久的历史中,Perl甚至不会远程限制这些功能,并且用于开发从脚本到Web框架到服务器,从大型企业软件到生物信息学软件的任何东西。< / p>
第三,请看这个 - 它有很多链接:
答案 1 :(得分:6)
我正在学习Python(这是我的第一个编程语言,所以不要因为你的原因太过激烈)而且我想知道它如何与其他脚本语言(如Perl和Ruby)叠加。与其他脚本语言相比,Python的优点是什么,更糟糕的是什么?
IMO。
我已经尝试过Python 2.x一段时间了,然后又回到了Perl和C ++。
Python有什么好处。 Python具有更好的可移植性,并具有现代GUI库。某些地方的标准图书馆也非常好(我特别喜欢随机)。算术表达式的执行速度优于Perl。
Python有什么不好的地方。档案不好。没有警告,没有任何打字与弱打字/语言的动态性质相结合是一个地狱。学习容易 - 使用困难,主要是由于不成熟的优化器驱使需要在开发周期的早期考虑性能边缘情况。 (有时候让我想起了Pascal。)OO目前很乱:旧式和新式课程之间的鲜明特征和差异并未得到很好的阐述;图书馆没有提到他们定义的类型。
可能应该突出显示不良文档。有大量的标准函数,但它们的生活目的并没有真正指定,也没有给出正确的例子。 Perl land中那些标准函数中有一半会位于perldoc perlguts
的某个位置。无论如何,使用Google查找内容要快得多。
缺乏警告和缺乏打字(与弱Perl的use warnings
/ use strict
和子原型相比)最终驱使我回来了。部分原因是因为我编写的代码比我能读的速度快,因此我喜欢依赖编译器/解释器来告诉我在哪里写了一些我并不真正想要的东西。
也请原谅,但是我会再次在Python中抛出它:使用缩进来表示代码结构是一种变形。我不介意它本身和短期功能它是非常好的。但是在一周之后我发现我在很大程度上读取Python代码(与C ++或Perl相比),因为我必须经常额外检查语句是否真的关闭或者仍然继续。如果代码不适合一个屏幕,那么总是按PgDown / PgUp进行检查就变成了一件苦差事。从来没有像我那样感谢{}
s。
所有人都认为,Python目前一团糟。值得关注的竞争者我会密切关注,但还不够成熟以满足我的日常需求。如果我现在决定学习Python,我会等待Python 3.x成熟。现在使用Python 2.x学习的许多东西在Python 3.x中可能毫无用处。而Python 3.x目前还不是很有用,因为许多库尚未移植到它。
P.S。我遇到的大多数虚假部分都是函数指针。通过撰写start_time = time.time
和time_elapsed = time.time() - start_time
,我发现它们比我需要的更早。半小时后,当脚本完成而不是结果时,我遇到了很好的解释器异常,告诉我我不能减去函数对象。半小时是由标准for
循环引起的,正如教程告诉我的那样。我稍后查找的优化(range
与xrange
,手动循环展开)使脚本在不到一分钟的时间内运行。
答案 2 :(得分:2)
这里有一个很好的概述,为什么Python(该语言)是一个非常好的开始编程的地方:http://www.python.org/about/
Python包含一个非常全面的标准库(即“包含电池”),可以解决许多编程问题。
一旦你学会了Python,我建议你也学习其他语言,比如Ruby,因为不同的语言为编程思考提供了不同的范例,从而扩展了你对计算模型的了解。