大数据文摘出品
来源:Zdnet
编译:洪颖菲、李可、Vicky、李雷
年,荷兰的一位叫GuidoVanRossum的宅男程序员觉得其他语言都不好用,于是花三个月创造了一种新的编程语言。
Guido肯定没有想到,30年后,每天都有数百万人使用他创立的这一新语言——Python。
无论是专业人士还是非专业人士,都在使用Python解决大大小小的问题,尤其是网络开发者、数据科学家和系统管理员。
今年早些时候,研究人员首次将万光年之外黑洞的图像拼接出来,使用的编程语言也是Python,。
一些全球大厂也在用Python处理关键业务,比如网飞(Netflix),用它将视频流传输到全球超过1亿个家庭,Instagram用它实现照片共享功能,NASA更是用它处理太空探索数据。
今天,文摘菌就和大家一起深扒一下Python的前世今生,一起看看这款编程语言是怎样被创造出来,并且成长为火遍全球的编程语言的。
命名自喜剧团体,宅男程序员三个月写出的编程语言
20世纪80年代末,GuidoVanRossum为荷兰国家数学和计算机科学研究中心CentrumWiskunde&Informatica(CWI)开发分布式系统。因为当时的编程语言存在缺陷,他决定创建一种新的语言——一种更易于使用又功能强大的语言。
年,GuidoVanRossum在Dropbox总部。照片来源:DanStroud对于一个从未开发过语言的人来说,创建编程语言就像是说“我要自己造一架飞机”。当时,三十多岁的VanRossum已经从事编程多年,他已经在CWI的ABC语言开发团队工作了三年,所以他很了解了构建指令解释器需要什么,也知道新语言需要哪些语法构建块。
要知道,VanRossum当时所用的编程语言非常具有局限性,要完成任何任务都很难。他正在研发的Amoeba分布式计算系统需要使用C或Unixshell,但是这两者都有很大的局限性:C语言不仅要求开发人员自己解决复杂的内存管理及各种坑,而且还缺少实现常用功能的可重用代码库,使得开发人员不得不针对每个新项目都重新进行开发;而Unixshell则有不同的缺点——它虽然为常见任务提供了一套实用程序,但其运行速度太慢,因此无法处理复杂的逻辑。
这些语言对开发人员的限制使得VanRossum想要创建新解释型语言——一种具备ABC编程语言功能特征的解释型语言——这一想法成为了当时的最佳选择。
“我的初衷就想着,好吧,为什么我不开发一种自己的语言,我可以利用现有的ABC语言,但将开发规模从需要三年完成的大项目缩小到自己可以在三个月内完成的小项目,于是Python诞生了。”VanRossum说到。
年年底开始,他开始投入所有精力来开发Python。
VanRossum从他最喜欢的喜剧剧团MontyPython的名字中借用Python一词给这个语言命名。至于Python与蛇的联系,以及后来双蛇缠绕图标,则都是后话。
“我当时比较宅,会在家看电视,或者写代码,或者边看电视边写代码,”他承认道。
虽然一开始的初衷是创建Python来辅助自己工作,但VanRossum认为,他的动力可能更多是来源于创建属于自己的编程语言这一挑战。
“我认为,在某种程度上,我的确很喜欢自己创建一个大项目这种想法,按照我的理念,我的方式来布局和设计代码,这样的编程对我来说很有趣。”他说。
在短短三个月内,VanRossum就开发出了解释型语言Python的原型,虽然他声称这个原型缺少现在的许多功能,但这便是今天Python的始祖。
“现在的Python语言多了很多重要的底层抽象功能,但从使用角度来说,还是与原型非常相似的。”他说。
“当时,我已经拥有了解释器和语言的所有基本组件。用首个Python解释器的编译出的简单Python程序今天仍然可以工作。”他说,并补充道,“函数定义方式相同,缩进格式相同,字典和元组是使用相同的语法创建,并且连用于交互式计算的提示符都是和原来一样的。”
互联网的兴起,python社区逐渐壮大
不过,尽管他的两位同事很快就接受开始使用这种语言,但VanRossum并没有对其更广泛的传播抱多大期望,因为在互联网时代之前,要想使一门编程语言落地生根是非常困难的。
虽然今天分享一个软件只需轻点鼠标,但在上世纪80年代这可是一件十分费力的事情。VanRossum回忆起推广Python前身ABC语言时的艰辛。
“我记得大约是85年前后,我第一次到美国度假的时候,我的行李箱里放了一盒装有ABC语言安装文件的磁带。”VanRossum说。
年的GuidoVanRossum,这一年Python软件基金会成立。因为当时简陋的电子邮件系统无法传输如此大的安装程序,VanRossum只能搜集那些对ABC语言感兴趣的人们的地址和电话号码,然后挨家挨户地递送这些装有安装源文件的磁带。尽管付出了很大的努力,ABC仍没有真正为大众所接受。
“因此,尽管ABC语言有强大的功能,我们在其推广方面并不成功。”但随着互联网的蓬勃发展,Python的推广就容易得多了,再不需要用磁带。
年,VanRossum在alt.sources新闻组里发布了Python,这是一个类似开源软件的版本(六年后开源软件这一术语才首次出现)。虽然Python解释器的安装文件被压缩成21个文件,需要一个晚上才能从Usenet上完成下载,但这仍然比几年前的磁带分发更有效率。
“我希望这能成功,即使没有,我至少发布了我发明的语言,这本身就是一种成就。”VanRossum说。
凭借以往经验,VanRossum表示,他花了很长的时间才从Python不断增长的用户群中看出些苗头。经过一段时间与Python社区定期互动后,他渐渐意识到自己创造了一种成功的语言。
“这种进展非常非常缓慢。在我们发布第一个开源版本后,我开始定期发布新版本,并与各新兴Python社区进行交流。这样做非常重要。”VanRossum说。
Python为何能超越对手并发展壮大?
从90年代初期到中期,Python开始逐渐受到