可以用Python编程语言做哪些神奇好玩的事情?( 二 )


而且Python 还有一种交互的方式 。如果是一段简单的小程序 。连编辑器都可以省了 。直接敲进去就能运行 。Python 是一种清晰的语言 。用缩进来表示程序的嵌套关系可谓是一种创举 。把过去软性的编程风格升级为硬性的语法规定 。再不需要在不同的风格间选择、再不需要为不同的风格争执 。与 Perl 不同 。Python 中没有各种隐晦的缩写 。不需要去强记各种奇怪的符号的含义 。Python 写的程序很容易懂 。这是不少人的共识 。Python 是一种面向对象的语言 。但它的面向对象却不象C++那样强调概念 。而是更注重实用 。不是为了体现对概念的完整支持而把语言搞得很复杂 。而是用最简单的方法让编程者能够享受到面向对象带来的好处 。这正是 Python 能像 Java、C#那样吸引众多支持者的原因之一 。Python 是一种功能丰富的语言 。它拥有一个强大的基本类库和数量众多的第三方扩展 。使得Python 程序员无需去羡慕Java 的JDK 。Python 为程序员提供了丰富的基本功能使得人们写程序时用不着一切最底层做起 。说到这里 。人们通常会用一种担心:脚本语言通常很慢 。脚本语言从运行的速度讲的确会慢一些 。但 Python 的速度却比人们想象得快很多 。虽然 Python 是一种脚本语言 。但实际上也可以对它进行编译 。就象编译Java 程序一样将Python 程序编译为一种特殊的ByteCode 。在程序运行时 。执行的是ByteCode 。省去了对程序文本的分析解释 。速度自然提升很多 。在用Java 编程是 。人们崇尚一种Pure Java 的方式 。除了虚拟机一切东西都用Java 编写 。无论是基本的数据结构还是图形界面 。而Pure Java 的SWING 。却成为无数Java 应用开发者的噩梦 。
Python 崇尚的是实用 。它的整体环境是用C 来编写的 。很多基本的功能和扩展的模块都是用 C/C++来编写的 。当执行这一部分代码时 。它的速度就是C 的速度 。用Python 编写的普通桌面程序 。其启动运行速度与用C 写的程序差别不大 。除了这些 。通过一些第三方软件包 。用Python 编写的源代码还可以以类似JIT 的方式运行 。而这可以大大提高Python 代码的运行速度 。针对不同类型的代码 。会有2 倍至100 倍不等的速度提升 。Python 是我见到过的语言中 。在易用性和速度上结合的最完美的一个 。通过丧失一点点经常可以忽略不计的运行速度从而获得更高的编程效率 。这就是我选择Python 的原因 。把精力放在要解决的问题上选择一种合适的语言 。才能让你把有限的精力放到最需要解决的问题上 。不同的语言有不同的作用 。C 和汇编适合编写系统软件 。如果用它们来编写企业应用 。恐怕没几个人能得心应手 。我以前就碰到一个用汇编写数据库程序的哥 。虽然最基本的功能完成了 。但要增加个报表预览什么的 。他就没法应付了 。聪明的程序员是用合适的工具去完成任务 。想找一把万能钥匙是不太可能的 。Python 的自动的垃圾回收机制是高级的编程语言的一种基本特性 。用拥有这一功能的语言编程 。程序员们通常不用去关心内存泄漏的问题 。而当我们用 C/C++写程序时 。这却是最重要的需要认真考虑却又很容易出错的问题之一 。数据结构是程序构成的重要部分 。链表、树、图这些在用C 编程时需要仔细表达的问题在Python 中简单了很多 。在Python 中 。最基本的数据结构就是数组、序列和哈希表 。用它们想要表达各种常见的数据结构是非常容易的 。没了定义指针、分配内存的任务 。编程变得有趣了 。CORBA 是一种高级的软件体系结构 。它是语言无关平台无关的 。C++、Java 等语言都有CORBA 绑定 。但与它们相比 。Python 的 CORBA 绑定却容易很多 。因为在程序员看来 。一个 CORBA 的类和 Python 的类用起来以及实现起来并没有什么差别 。
没了复杂体系结构的困扰 。用 Python 编写CORBA 程序也变得容易了 。好钢要用在刀刃上 。要想用有限的时间完成尽量多的任务 。就要把各种无关的问题抛弃 。而Python 恰恰提供了这种方法 。跨平台又易扩展随着Linux 的不断成熟 。越来越多的人转到Linux 平台上工作 。软件的开发者自然就希望自己编写的软件可以在所有平台下运行 。
Java 一次编写处处运行的口号使它成为跨平台的开发工具的典范 。但其运行速度却不被人们看好 。实际上 。几乎所有的著名脚本语言都是跨平台的 。Python 也不例外 。

推荐阅读