Python是我喜欢的语言,简洁,优美,容易使用。前两天,我很激昂的向朋友宣传Python的好处。
听过之后,朋友问我:好吧,我承认Python不错,但它为什么叫Python呢?
我不是很确定:呃,似乎是一个电视剧的名字。
朋友又问:那你说的Guido是美国人么? (Guido von Rossum,Python的作者)
我再次不是很确定:他从google换到Dropbox工作,但他的名字像是荷兰人的 (有一个von在中间)。
所以,后面我花了些时间调查Python的历史。这是很好的学习。我看到了Python中许多功能的来源和Python的设计理念,比如哪些功能是历史遗留,哪些功能是重复,如何增加功能……
而且,Python也是开源(open source)运动的一个成功案例。从Python的历史中,我们可以一窥开源开发的理念和成就。
Python的起源
Python的作者,Guido von Rossum,确实是荷兰人。1982年,Guido从阿姆斯特丹大学(University of
Amsterdam)获得了数学和计算机硕士学位。然而,尽管他算得上是一位数学家,但他更加享受计算机带来的乐趣。用他的话说,尽管拥有数学和计算机双料资质,他总趋向于做计算机相关的工作,并热衷于做任何和编程相关的活儿。
Guido von Rossum
在那个时候,他接触并使用过诸如Pascal、C、
Fortran等语言。这些语言的基本设计原则是让机器能更快运行。在80年代,虽然IBM和苹果已经掀起了个人电脑浪潮,但这些个人电脑的配置很低
(在今天看来)。比如早期的Macintosh,只有8MHz的CPU主频和128KB的RAM,一个大的数组就能占满内存。所有的编译器的核心是做优化,以便让程序能够运行。为了增进效率,语言也迫使程序员像计算机一样思考,以便能写出更符合机器口味的程序。在那个时代,程序员恨不得用手榨取计算机每一寸的能力。有人甚至认为C语言的指针是在浪费内存。至于动态类型,内存自动管理,面向对象……
别想了,那会让你的电脑陷入瘫痪。
然而,这种思考方式让Guido感到苦恼。Guido知道如何用C语言写出一个功能,但整个编写过程需要耗费大量的时间
(即使他已经准确的知道了如何实现)。他的另一个选择是shell。Bourne
Shell作为UNIX系统的解释器(interpreter)已经长期存在。UNIX的管理员们常常用shell去写一些简单的脚本,以进行一些系统维护的工作,比如定期备份、文件系统管理等等。shell可以像胶水一样,将UNIX下的许多功能连接在一起。许多C语言下上百行的程序,在shell下只用几行就可以完成。然而,shell的本质是调用命令。它并不是一个真正的语言。比如说,shell没有数值型的数据类型,加法运算都很复杂。总之,shell不能全面的调动计算机的功能。
Guido希望有