The History of Python

2009年4月26日星期日

个人历史 第二部分 CNRI及其之后

英文原文链接:http://python-history.blogspot.com/2009/01/personal-history-part-2-cnri-and-beyond.html

原文作者:Guido van Rossum

在Python研讨会(详情参见前帖)上我得到去CNRI从事移动代理方面的工作机会,CNRI全称是美国全国研究创新联合会,是位于弗吉尼亚州瑞斯顿的一个非盈利研究实验室。我于1995年4月正式加入。CNRI主管Bob Kahn第一个告诉我Python和Lisp除了在表面的(语法形式上)区别很大之外是如此相似。在CNRI Python通过DARPA对移动代理研究的支持而得到间接资助。虽然DARPA支持了应用Python的项目,对Python语言本身开发的直接支持并不多。

在CNRI,我领导并参与招聘了一个纯粹使用Python实现移动代理的开发小组。最初成员包括Roger Masse和Barry Warsaw,他们是在NIST召开的Python研讨会上对这门语言着魔的。除此之外我们还招聘了Python社区的Ken Manheimer和Fred Drake。Jeremy Hylton从MIT毕业后本来从事文本信息检索工作,也加入到我们组。开发组最初由Ted Strollo管理,后来是Al Vezza。

开发组辅助我创建和维护Python社区的新配套实施,如Python.org网站、CVS服务器、Python各专业兴趣组(SIG)邮件列表。在CNRI Python发布了从1.3到1.6版本。其中的1.52版本在很多年里是最流行和稳定的版本。

GNU mailman也诞生于此地:我们最初利用的是一个名为Majordomo的Perl工具,但是Ken Manheimer感到难以维护,也想找寻一个基于Python的实现方案。他找到John Viega利用Python写的部分代码,并接手了维护。Ken离开CNRI去Digital Creations之后,Barry Warsaw接手了维护,并且说服自由软件基金会采用mailman作为它们的官方邮件列表工具。为此Barry以GPL协议(GNU通用公共许可证)发布mailman软件。

Python研讨会继续进行,最初是一年两次,后来由于规模变大,筹办事务繁重而改为一年一次。由最先想主办的机构来组织,NIST组织了第一届,USGS组织了第二届和第三届,LLNL组织了第四届,并且从此改为一年一次。最终CNRI把持了主办权,并随后(联合WWW以及IETF会议)作为一个商业活动的副产品,称作Fortec。参会者迅速飞涨到数百人。当我离开CNRI一段时间后Fortec逐渐衰落。国际Python会议成为O'Reilly开源大会(OSCON)的一部分,与此同时Python软件基金会(有关PSF详情参见下文)开始了一个面向草根大众的PyCon的新会议。

在CNRI时,我们还创办了第一个(松散的)Python组织。在Mike McLay和Paul Everitt的努力下,成立了“Python基金会”这个基金会还在规划阶段便随风而逝了。Bob Kahn 建议成立“PSA:Python软件部门”,这不是一个独立的法人,而是作为CNRI(非盈利)法人之下的一个群体活动组。PSA成功的把一大群Python用户集合在一起,不过PSA的效力也因缺乏独立法人身份而受限。

CNRI还是用DARPA的资金资助了JPython的开发(后来缩写为Jython),这是一个用Java实现并为Java所用的Python实现。Jim Hugunin在MIT读研究生期间创建了该项目。他说服了CNRI雇用自己继续完成Jython(也可能是CNRI主动说服Jim加入进来 -- 当时我正在渡假。)。不到两年后Jim离开了CNRI,去了施乐帕洛阿尔托研究中心的AspectJ项目,Barry Warsaw接手了Jython并继续开发。(很久以后,Jim又开发了IronPython,这是在微软.NET平台上的Python实现。Jim还是Numeric Python第一个版本的作者。)

其他CNRI的项目也开始使用Python。有几个新的Python核心开发人员便从中产生,特别有Andrew Kuchling、Neil Schemenauer和Greg Ward,他们当时为微机电系统交换项目工作。(Andrew早在加入CNRI之前就开始为Python语言做出贡献;他第一个主要项目是Python密码学工具包,这个第三方库使得Python用户得以使用许多基本的密码学算法。)

看到Python日益取得的影响,CNRI尝试建立一种更加直接资助Python的模型,而不是像以前通过DARPA的研究基金那样的间接方式。我们基于X协会模式建立了Python协会,最低入会费为2万美元。然而除了HP公司的一个研究组,我们并没有得到过多关注,最终因为缺乏收入来源而停止运作。另一次尝试则是通过建立CP4E(人人可编程)计划来得到资助,这个计划得到了一些DARPA资金。然而不足以维持整个团队运作,而且看起来那几年就是通过一些同学关系网得到花费资金。这并不是我所希望的,于是我开始找寻其它可能。

最终到了2000年早期,互联网泡沫时代的到来了(至尽仍未消失殆尽)。让我和CNRI其他三个成员(Barry Warsaw,Jeremy Hylton和Fred Drake)跳槽到BeOpen.com,这是加利福尼亚一家招聘开源开发人员的新创公司。Tim Peters,Python社区的关键一员也在这时加入我们。

预计转移到BeOpen.com之后的需要面临一个Python将来的所有权问题。CNRI坚持更改协议并且要求我们采用新协议发布Python1.6版本。最初我在CWI时用的旧就协议是一个MIT协议版本,而在CNRI之前发布的Python版本修改甚微,主要是增加了个条CNRI的免责条款。1.6版本的协议则是由CNRI律师起草的冗长公文了。

我们和FSF(自由软件基金会)的Richard Stallman和Eben Moglen就新协议问题进行了多次讨论。他们担心新协议有可能和GPL不兼容进而威胁GNU mailman的合法性。而现在GNU mailman已经是FSF离不开的重要工具了。 在Eric Raymond的帮助下,CNRI Python协议的更动之处除了行文不易于理解之外让FSF和CNRI双方都满意。我唯一能从中想到的好处(再次感谢Eric Raymond的帮助)是Python被FSF亲口认可为开源许可协议。后来又对协议做了细微改动以反映两个Python版权的继承者,BeOpen.com,然后是Python软件基金会。 当然CNRI律师的大作依然有效。

正如那时候许多初创公司一样,BeOpen.com的商业计划也在惨烈中收场。留下了大量债务,一些对部分公司管理人员所扮演角色的沉沉疑惑,已经一些包括我的团队在内的心灰意冷程序员。
我的团队,现在叫PythonLabs了,碰到了好年头,相当抢手,整体被Digital Creations招聘为一个部门。这是最早应用Python开发的公司之一(Ken Manheimer比我们还要早几年。)Digital Creations很快更名为Zope公司,这是由于他发布了自己的主要产品,开源web内容管理系统Zope。Zope的创办人Paul Everitt和Rob Page,以及CTO Jim Fulton参加了1994年在NIST召开的最早的那届Python研讨会。

历史差点改写:除了Digital Creations,我们当时还考虑了VA Linux和ActiveState伸出的橄榄枝。VA Linux当时是股票市场的后起之秀,但是最终它的股价(使得Eric Raymond一度成为纸上的大富翁。)还是戏剧性的崩溃了。现在来看ActiveState如果不是在加拿大的话或许是个不错的选择,尽管创办人Dick Hardt的个性有争议。

2001我们创建了Python软件基金会,这是一个非盈利组织,最初的成员主要来自当时Python开发的主力贡献人员。Eric Raymond是创办人之一。我下次再多写点这个事情。

没有评论: