python和其他语言比较_比较 Python(Python 与其他语言的比较)

---------《PYTHON核心编程》 比较 Python(Python 与其他语言的比较) Python 已经和很多语言比较过了。 一个原因就是 Python 提供了很多其他语言拥有的特性。 另外一个原因就是 Python 本身也是由诸多其他语言发展而来的,这包括 ABC、Modula-3、C、C++、Algol-68、SmallTalk、Unix shell 和其他的脚本语言等等。Python 就是”浓缩的精华 “:范·罗萨姆研究过很多语言,从中吸收了许多觉得不错的特性,并将它们溶于一炉。 然而,往往因为 Python 是一门解释型语言, 你会发现大多数的比较是在 Perl、Java、Tcl,还有 JavaScript 之间进行的。Perl 是另外一种脚本语言,远远超越了标准的 shell 脚本。像Python 一样,Perl 赋予了你所有编程语言的功能特性,还有系统调用能力。 Perl 最大的优势在于它的字符串模式匹配能力,其提供了一个十分强大的正则表达式匹配 引擎。这使得 Perl 实际上成为了一种用于过滤、识别和抽取字符串文本的语言,而且它一直是开发 Web 服务器端 CGI(common gateway interface,通用网关接口)网络程序的最流行的语言。 Python 的正则表达式引擎很大程度上是基于 Perl 的。 然而,Perl 语言的晦涩和对符号语法的过度使用,让解读变得很困难。这些语法令初学者 不得精要,为他们的学习带来了不小的阻碍。Perl 的这些额外的“特色”使得完成同一个任务会有多个方法,进而引起了开发者之间的分歧和内讧。最后,通常当你想阅读几个月前写的 Perl脚本的时候都不得不求助参考书。 Python 也经常被拿来和 Java 作对比,因为他们都有类似的面向对象的特性和语法。Java 的语法尽管比 C++简单的多,但是依旧有些繁琐,尤其是当你想完成一个小任务的时候。Python的简洁比纯粹的使用 Java 提供了更加快速的开发环境。在 Python 和 Java 的关系上,一个非常重大的革命就是 Jython 的开发。Jython 是一个完全用 Java 开发的 Python 解释器,现在可以 在只有 Java 虚拟机的环境中运行 Python 程序。 我们会在后面的章节中简单讲述 Jython 的更多优点,但是现在就可以告诉你:在 Jython 的脚本环境中,你可以熟练地处理 Java 对象,Java可以和 Python 对象进行交互,你可以访问自己的 Java 标准类库,就如同 Java 一直是 Python 环境的一部分一样。 现在,由于 Rails 项目的流行,Python 也经常被拿来和 Ruby 进行比较。就像前面我们提 到的,Python 是多种编程范式的混合,它不像 Ruby 那样完全的面向对象,也没有像 Smalltalk 那样的块, 而这正是 Ruby 最引人注目的特性。 Python 有一个字节码解释器, Ruby 没有。 而 Python 更加易读,而 Ruby 事实上可以看作是面向对象的 Perl。相对于 Rails,Python 有几个自己的 Web 应用框架,比如 Django 和 Turbogears 这两个项目。 Tcl 是另一种可以与 Python 相提并论的脚本语言。 是最易于使用的脚本语言之一, 程 Tcl 序员很容易像访问系统调用一样对 Tcl 语言进行扩展。Tcl 直到今天仍然很流行, 与 Python 相比, 它或许有更多局限性(主要是因为它有限的几种数据类型), 不过它也拥有和 Python 一样的通过扩展超越其原始设计的能力。更重要的是, Tcl 通常总是和它的图形工具包 Tk 一 起工作, 一起协同开发图形用户界面应用程序。因为它非常流行, 所以 Tk 已经被移植到 Perl(Perl/Tk)和 Python(Tkinter)中. 同样有一个有争议的观点,那就是与 Tcl 相比, 因为 Python 有类, 模块及包的机制,所以写起大程序来更加得心应手。 Python 有一点点函数化编程(functional programming ,FP)结构,这使得它有点类似 List 或 Scheme 语言。 尽管 Python 不是传统的函数化编程语言, 但它持续的从 Lisp 和 haskell 语言中借用一些有价值的特性。举例来说, 列表解析就是一个广受欢迎的来自 Haskell 世界的 特性, 而 Lisp 程序员在遇到 lambda, map, filter 和 reduce 时也会感到异常亲切。 优秀的 JavaScript 程序员 JavaScript 是另外一种非常类似 Python 的面向对象脚本语言。 学起 Python 来易如反掌。 聪慧的读者会注意到 JavaScript 是基于原型系统的, 而 Python 则 遵循传统的面向对象系统, 这使得二者的类和对象有一些差异

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值