使用社交账号登陆

当前位置: 主页 > IEEE专区

访谈:吉多·范·罗素:Python的现代化

时间: 2015年11月22日 | 作者: admin | 来源: 未知
Charles Severance, University of Michigan 查尔斯·赛佛伦斯(Charles Severance) 密歇根大学 【导语】Python的创始人吉多•范•罗素谈成长的烦恼和回报:这门程序语言的演化历程。 【正文】现在颇

Charles Severance, University of Michigan

查尔斯·赛佛伦斯(Charles Severance) 密歇根大学



【导语】Python的创始人吉多•范•罗素谈成长的烦恼和回报:这门程序语言的演化历程。

hqdefault.jpg

【正文】现在颇为流行的Python程序语言创建于1989年,创始人为吉多•范•罗素(Guido van Rossum),并于1991年以开源形式对外发布。1994年,由美国国家标准与技术研究所(NIST)主持的首次Python语言研讨会于马里兰州的盖瑟斯堡召开,会后,Python语言的全球知名度快速上升。随着应用规模的扩大,事情开始变得有点复杂。在本专栏中,我们继续上个月与吉多进行的讨论,这次我们主要讨论Python从第1版到第3版的演进过程。要收听笔者与吉多的讨论,请访问www.computer.org/computingconversations



建立社区

1994年,由NIST赞助的那次研讨会为初期的Python社区的聚会提供了机会,并解决了未来几个阶段的发展问题。对吉多来说,这次研讨会为他带来了一份工作,让他得以前往美国。



1995年到2000年,我在美国国家研究倡议公司(CNRI)工作,我们致力于推进Python社区和基础设施建设,并创建了Python网站。当我开始在CNRI工作时,Python 1.3即将发布。在我供职期间,我们发布了几个Python版本,直至1.5.2,该版本在此后很长一段时间内成为Python的“黄金标准”。


CNRI让吉多和他的同事们能够做出重要的开发投资来推进Python向前发展,不过一些人觉得也许应该让该产品从开源模式变为一种可盈利的模式。吉多也发现自己在Python的授权和所有权问题上与CNRI的领导层产生了越来越多的冲突。这时,一家小型开源创业公司开始来挖吉多。


他们说,“你一定要来我们的开源创业公司工作,你可以寻找并雇用几个Python工程师,你和你的团队可以全职从事Python工作。”我当时想“哇,这太好了,”于是我同意加入这家公司。到2000年5月15日那天,我们真正开始工作时,互联网泡沫已经开始破裂了,而我当时都不知道有泡沫这一说。


那时候,没人知道互联网行业是会东山再起,还是永远就这么完了,所以这种情况维持了一段时间。


我们怀着一种无知的快乐工作了一个夏天,我们创建并发布了Python 2。Python 2非常重要,因为其中包含统一码,也因为我们需要从CNRI从容退出。


CNRI没有宣称拥有Python全部所有权,因为在吉多供职CNRI很久以前,Python就已经存在了,但在吉多和他的同事供职CNRI期间对Python添加的代码的所有权上,双方存在着分歧。

在埃里克·雷蒙德(Eric Raymond)和伊本·莫格伦(Eben Moglen)的帮助下,我们和CNRI进行了谈判,以确保Python仍然是CNRI的律师可接受的授权条款下的开源语言。由于我离开CNRI的方式,使得Python的许可权仍是一个非常尴尬的问题。


开源授权问题得到了解决,但向吉多和开发者团队支付薪水的创业公司开始陷入困境。


我们甚至都没搬到西海岸去,而是就在家里办公。我们每周在我的客厅里和加州的领导层开一次小组会议。我们只干了五个月,他们就不再给我们发薪水了,但在那五个月里,我们通力合作发布了开源的Python 2。我们还发布了Python 1.6,它与Python 2几乎完全相同,但拥有CNRI的授权。


那家创业公司倒闭了,他们没能领到最后的薪水。


突然间,我们就流落街头了。他们该我们每人买了台不错的电脑,那就是我们最后的薪水。我们被非正式地通知:“没人会向你们要这些电脑。他们不会追着你们要的。”


Python获得第二次机会

到了2001年底,在Python的社区出现了大量的商业活动,有几家公司有兴趣帮助Python继续走下去。吉多选择了去Zope公司工作,这家成功的公司位于弗吉尼亚州,此前积极参与Python社区的活动。当时,已经历过第一次波折的吉多学聪明了一点,和Zope公司讨论了工作方式的细节问题,继续领导Python社区。


Zope公司说:“我们在Python的所有权上没有想法,我们想让你加入团队,你是一个非常不错的程序员,为Python的社区建设做出了最杰出的贡献。”


由于Zope公司是基于Python创建的,他们向吉多团队的投资获利颇丰。在Zope时期,Python继续走向成熟,获得越来越多人的接受。


我获得了去加州一家小创业公司的工作机会,这次我做了点功课,结果还不错。Python一直向前发展,社区一直保持自我组织的形式。1994年创建的这个25人工作室已经发展为由300-400人的参与国际Python大会。我经常鼓励社区实现自我组织,而不是让我来作出每项决定。


随着Python的发展,产生了许多新的使用方式,人们开始考虑如何对其进行改进。有时为Python添加一个元素很容易,有时一个改进建议也可能破坏现有的代码。这些矛盾、疏漏和错误被称为Python的“wart”。


Python 3的诞生

2005年,Python的wart清单越积越长,使得Python需要进行一次大规模修改。这是一件大事,因为这种修改将不再兼容以前的版本,破坏发展正猛的Python 2应用群。本次不向下兼容的修改只进行一次,而且是同时进行。


Python 3000的想法早在新世纪伊始就产生了。我们想要修复的地方太多了,而且知道怎样去修复。但这次修复不向下兼容,所以我们决定创建一个新版本的Python,修复所有这些问题,同时不让它和老版本的差异太大,以免让用户产生距离感。



Python 3000(或Python 3k)成为Python 3。Python社区在升级问题上非常耐心,花了数年时间完成这一转变。他们明白有必要为Python 2和Python 3同时提供多年的支持。Python 3发布于2008年12月,即便在发布7年后的今天,社区仍然在为Python 2提供活跃而强力的支持。Python的领导层让社区来决定何时做出改变:


在每年的Python社区聚会PyCon上,我都能感受到是谁在使用Python 3,他们有多么开心。我们每年都有长足的进步,但我们仍未达到目标。在2014年的Python大会上,我不得不将一大群争论是否应该发布Python 2.8的人劝开。Python 3正在赢得用户,但它还需要更多的时间。


Python 3无疑已经度过了发展的临界点,正不断获得越来越强的推动力。不过,一次版本转换经历了近十年的计划、开发和修正,这就是让开放的社区自己掌握Python命运的明证。


随着数据挖掘和数据分析的迅猛增长,Python恰逢其时地成为数据分析中的第一语言,同时也成为新程序员的首选语言。Python社区强力而活跃,PyCon每年吸引了2500多人参加,而且每年还有40多场与Python有关的会议在世界各地举行。


Python也成为社区领导者如何通过为思想开放的公司工作而顺利生存的一个研究范例,这些公司允许其雇员参与开源通用技术平台的构建。在过去的20年里,吉多先后在多家公司工作过,包括荷兰数学与计算科学研究所(CWI)、CNRI、Zope、谷歌和现在供职的Dropbox,这些公司都允许他继续参与Python的建设。吉多为这些公司带来了作为一位开源领导者获取的技能和知识,这些公司相应地支持他继续参与Python的建设。这是可持续开源技术的一个出色的运作模式。


【作者简介】查尔斯·赛佛伦斯(Charles Severance),计算对话专栏编辑,《计算机》杂志多媒体主编。他是密歇根大学信息学院临床副教授。他的联系方式:@drchuck(推特)或csev@umich.edu.