面对珍珠(perl)夺目之光、灵蛇(python)更具有上天入地之能。它可以在 ms-dos,amiga,beos, os/2,vms,qnx等多种os上运行;比 perl 和 vb更快更好,比 c 和 c++ 语言更具扩充性;不仅在”星球大战”、 “星球之旅(star trek)”等超级大片中当纲特技和动画制作,还闯入了美国航天航空局控制室。真相如何,请看报道。
对 perl (珍珠) 语言,互联网开发人员可以说是无人不知、无人不晓;它运行迅捷、操作简单,而且可以让用户在使用时感到其乐无穷。但它也有不竟如人意的时候:它的开放性同时带来了它的复杂性,用它处理大项目时尤其会使人无从下手。
尽管如此,大部分互联网项目仍得靠着 perl 这员”功臣”来搭建。
但也并非别无选择。最新推荐的软件叫 python (灵蛇),它的历史仅有 perl 的1/4,有着许多相似的特征。
python 的名字源于著名的滑稽团 monty python,它拥有许多广为人知的演员,并塑造了许多妇孺皆知的银屏形象。那么,互联网世界中的 python 又是怎样的一个形象呢?
更快更好的 python
与 perl 一样, python 也是一种解释语言,它完全采用面向对象的方式,语言结构介于 c 语言和 perl 语言之间。虽然它被视作一种高极语言,但它的内置解释器的功能却非常基本,仅有几种功能、操作符和关键词便构成了整个程序语言。它的优势可不仅如此,它还能通过一系列的模块进行扩充。它既比 perl 和 vb 语句更快更好,又比 c 和 c++ 语言更有扩充性。
同样,python 对程序语句的处理首先通过一个解释和编译系统转换成为一系列的字节代码,然后再由 python 的虚拟机进行处理。python 设计得非常有效,主要归功于它庞大的功能库,因此用户不用进入系统环境或是操作系统,也不用引用模块。用 python 编程,小程序还是小程序,不必劳费太多的成本和时间。
除了它的 core 平台外, python 还能在 ms-dos,amiga,beos, os/2,vms,qnx 以及其它许多操作系统上运行。甚至还可以在掌上电脑上运行 python 程序。面对珍珠(perl)夺目之光、灵蛇(python)更具有上天入地之能。
除了它的 core 平台外, python 还能在 ms-dos,amiga,beos, os/2,vms,qnx 以及其它许多操作系统上运行。甚至还可以在掌上电脑上运行 python 程序。
python 还有以下显著的特征:
超强的适应性
python 可以由一系列的平台支持。它编译完备的格式可以在 windows 和 macos 及其自身 tk 扩充平台上运行,并可用于开发对用户友好的界面。在 unix 和其它平台上, python 可以作为源代码由程序员自行编译,或者与其它预编的二进制编码共同使用。它超强的适应性更能让它有跨平台适用的能力:用它在 unix 平台上书写的程序段95%的情况下无须作任何修改就可用于 mac 和 pc 机。扩充 tk 平台对它的支持,甚至可以让基于gui 格式的应用程序不用大动筋骨就可在上述三种平台上做自由切换,还保持着统一的界面。
正因为这种天然生就的跨平台运行能力,python 还能支持一些平台的扩充平台,从而简化和免除了对其它语言和环境的适应过程。与 sunos / solaris 工具带有 sun 音频设备及 sgi版本带有视音频接口(包括 opengl)一样,windows pytyon 解释器也同样带有 visual c++ 类库和 windows 音频驱动接口。此外还有与 com 对象进行通讯的功能。
超大的功能性
python 几乎无所不能。它的内核很小,但却拥有足够的基本程序块用于设计大部分应用软件。而且在某些情况下该程序语言还可以扩充与 c,c++ 和 java 语言并用,因此没有它编不了的程序。 python 解释器还带有极为强大的补充模块库,用于扩充语言能力,进行网络通讯、文本处理和规则表达式匹配。
虽然 python 的主要特点是隐去程序员的许多低级复杂工作,它还能支持钩、扩充程序以及其它功能对某些操作系统进行低级接入。正因为这种高低兼行的特点,python 可以视作和 c,visual basic 同等级别的语言,或是介于二者间的其它级别的语言。
超凡的扩容性
因为 python 本身用 c 语言写成(某些扩充平台采用c++语言编写),而且它采用开放式的源代码,这样可以对程序本身进行主动扩充。另外该程序语言的许多模块由 c 和 c++ 界面支持,包括一些诸如网络和dbm数据库接入等基本构件,以及其它如 tk 等许多先进工具。
此外,python 还能融入 c 或 c++ 语言,从而可以使用 python 语言为应用程序提供编程界面。也正基于它的跨语言开发的支持能力,还可以使用 python 设计应用程序后再输送到为 c 语言环境而无须将程序用 c 语言重写,因为两种语言均可同时使用。
jpython 是一个完全采用 java 语言编写的 python 解释器,这就意味着任何 python 程序都可与一个 java 对象或是使用 python 对象的应用程序相联结。
超常的简易性
了解了 python 以上几个基本特点后,再对程序语言它内容进行了解就相对容易了。该语言内核很小,而且格式和文体简明。由于所有其它的组件和扩充部分都使用完全一样的句法结构,利用 python 编程会很快让人速成。
但这并不意味着 python 语言就没有复杂的地方。对其许多扩充部分和内库都必需经过深思熟虑后方可进行有效的利用。
超强的功能性
拥有如此广泛的支持和博采众长的特征,python 在处理一系列问题上都显得特别有效。以下为它的功能简介:
计算器:
由 python 支持的一个扩充程序叫 numpy,它可以提供与许多标准数学库相连的接口。python 语言还拥有无限精确的特性,可以单独处理100位数字的算术。
文字处理器:
python 能够对任何数据进行分割、累加和总结。它的模块可以对日志文件行中的元素进行分割,并根据内置的数据种类对其信息进行记录和总结,最后才进行输出。它的规则表达式库使程序员可以使用 emacs,perl 等等。 这再次证明 python 的无所不能,曾经有程序员还利用 python 编制成非常复杂的 sgml 处理工具。
便捷的应用开发:
python对程序员而言一目了然,用它编程迅速有效。它博大的模块库可以提供针对不同协议、工具和库的接口。免除重新开发之苦。
由于python 还支持 tk 工具,所以可以在几个小时内完成一个应用软件,而用 perl 语言可能会需要2到3天,用 c 语言甚至要几个星期。
跨平台开发:
python 以中立方式支持不同的一系列平台,如果用户使用的系统包含不同的平台,使用 python 开发应用程序则再好不过;它这种适应性也可以为系统预留使用其它工具的可能。对于频繁更换平台用户,python 是个理想的选择。
为最终用户提供软件服务时,python 也是个备选方案,可以避免同时用不同应用软件编程的时间和费用。
系统设备
python旨在避免操作系统中低级部分的滋扰,但如若需要主动进入这些低级部分时也完全可以通过相应的工具和扩充件来实现。与操作系统一样, python 可以进入相同的的功能,并予以备份和扩充,而且备份和扩充后的功能会增加 python 的所有的适应性和接口能力。
互联网程序设计
python 带有的标准模块可以对网络插槽进行初级和协议级别的通讯,比如,如果要从 pop 服务器上读取电子邮件,python 随带的库模块可以做到。另外, python 还支持 xml、html和 cgi 库文件,所以利用它可以解析用户输入的需求,并通过网络服务器产生最佳质量的成果。
程序员还可为拥有 python 内置解释器的 apache、unix 和 windows 网络服务器编译模块。基于 cgi 程序的功效,可以很方便地执行 python 语句而不用单独装载。
数据库编程
python 中有无数的扩充模块可以连接如 orcle、informix 、mysol和postgresql等通用的数据库系统;还有称作 gadfly 的工具可以独立python 提供完全的sql环境。python 有强大的文本和数据处理能力,可以用它作为不同数据库间的连接,比起那些数据库附带的总结和汇报工具显得更有优势。同时,由于它支持不同系统,用同样的接口也可以连接任何数据库。可以用 tk 在支持平台上建立前端,马上就可获得高速跨平台、独立数据库的查询工具。
其它
python 应用范围广泛,几乎没有它不适配的语言;凭籍它的微小内核、丰富功能、多样数据,python 提供了一个良好的程序构建基础。综合了c 和 c++二者的优点,只要采用合适的结构和方式,便可对 python 程序进行无限的扩充。除了一大堆显著的优点,python 也有缺点。
要列出 python 的缺点确实不太容易。python 在其扩充模块中提供了大部分的功能,并充分显示了对其增加功能有多容易,一旦用它还不能解决问题,那么也仅需要利用 c 或 c++ 语言重新编写一个扩充程序便可。
批评 python 的人往往不是说python 缺乏某种功能,而是对这种功能并不了解。通常还有一种抱怨说 python 缺少规则表达式的支持-但实际上有两个模块可以用来处理规则表达式,其中之一还可以完全用来支持 perl 语言的句式句法。对规则表达式的处理并没有编进该语言中,但并不等于它作不到。
针对 perl、rebol 和 java 语句而言, python 的优势在于它的内核很小。这减少了执行的时间,因为在运行时需要装载的代码较少,而且这个特点也使它有着更广的适应性。
一旦熟悉了 python 语句的简明风格,它的强大优势顿时便会凸现出来。用它编就的程序历久不衰。
python 的理想用户群
它适合不同类型的用户以解决不同类型的问题。大部分时候这些问题一般不为人所知,因为它们有着较高的保密性。也有大型公司用它进行商用开发,并展示开发所获的成果。
红帽 (red hat )曾用 python 和 tk 一起成功开发配置和管理操作系统的可视界面。整个系统可以全面控制 linux 操作系统,并根据用户选择对配置文件作自动更新。
infoseek 在其公用搜索引擎使用了python。该公司还用 python 对其软件进行定制,使最终用户能对该网站内容进行方便下栽。
美国航空航天局也在不少领域中用到 python 程序语言,最出名的莫过于在任务控制中心将 python 用于任务计划;对 python 在其它方面的使用例如用其计算天体方位和设计卫星的路径等等都充分体现了 python 的超强计算能力。
以在”星球大站”、”阿贝斯 (abyss)”、 “星球之旅 (star trek)”、 “印地安那琼斯 (indiana jones)”超级大片中当纲特技和动画制作的工业光魔公司 (industrial light)也采用 python 制作商业动画。