布雷特·坎农如何成为Python核心开发者:从学生到关键贡献者
Python最具影响力的几位核心开发者之一布雷特·坎农,在接受创始人吉多·范罗苏姆的专访时,分享了自己从初识Python到成长为关键贡献者的完整历程。2000年秋季,他正为计算机科学专业入学考试做准备,急需一门工具语言来掌握面向对象编程(OOP)。Python凭借其简洁语法与交互式REPL环境脱颖而出——尤其对比他此前使用的C语言,优势一目了然。
初探Python
彼时,坎农正在攻读哲学学士学位,同时自学计算机科学。他熟悉C语言,也浅尝过Pascal——但Pascal编译器频频报错令他倍感挫败。为备战加州大学伯克利分校CS 61A课程,他亟需扎实掌握面向对象编程。当时主流搜索引擎如AltaVista向他推荐:“Python是绝佳的入门语言。”
他通读了Python官方文档和马克·卢茨所著《Learning Python》。尽管OOP并未出现在入学考试中,Python却深深吸引了他:他开始用它编写脚本、完成大学作业。从C转向Python的过程中,交互式REPL成为他快速实验与高效学习的“利器”。
接触Python前掌握的主要语言:
- C(主力)
- Pascal(少量)
以“食谱”叩开社区之门
2001年,ActiveState推出《Python Cookbook》——一个协作式代码片段共享平台。坎农提交了一个简洁、兼容Windows平台的strptime实现方案,因为当时标准库在该平台上尚不支持该功能。亚历克斯·马泰利将这一方案收录于首版奥莱利《Python Cookbook》中。
该方案持续演进:最初依赖系统本地化设置,后经坎农大幅简化。2002年5月——Python 2.3发布后不久——他致信马泰利,询问能否将其纳入标准库。马泰利建议他联系python-dev邮件列表,即核心开发者的交流主阵地。
弗朗索瓦·皮纳尔协助优化了补丁。同年6月,坎农正式提交提案;7月,time.strptime便被合并进代码仓库。他自此持续订阅并深度参与该列表讨论。
阅读python-dev邮件列表,完成首次代码提交
2002年8月,坎农开始每周撰写python-dev邮件列表摘要,接替安德鲁·库克林此前承担的角色。这些摘要既是自我学习的工具,也是公开提问、建立信任的窗口。他坚持撰写了两至三年——贯穿整个博士阶段。
python-dev邮件列表涵盖:
- 新特性提案
- Bug报告与修复补丁
- PEP(Python增强提案)讨论
- 向后兼容性问题
本科毕业后,他利用一年空档期打磨简历,同时持续为Python贡献代码。首个strptime提交带来的成就感,成为他持续投入的强大动力。
早期核心开发者社区生态
2002至2003年间,Python核心团队规模尚小——约20至50人,其中活跃成员仅半数左右。关键人物包括:
- 马丁·冯·洛维斯
- 尼尔·诺维茨
- 马克-安德烈·伦贝格
- 安德鲁·库克林
- 亚历克斯·马泰利
- 蒂姆·彼得斯
- 雷蒙德·赫廷格
- 格雷格·斯坦
- 杰克·詹森
- 巴里·华沙
坎农加入团队的时间恰逢2003年美国PyCon大会前夕(华盛顿特区举办)。彼时Python仍属小众语言——常被戏称为“靠缩进说话的语言”。代码变更直接提交,设计争议全靠邮件往来解决。PyCon吸引的是一群充满热忱的志愿者——多数人另有全职工作。
早期脚本存档平台《帕纳索斯宝库》(Vaults of Parnassus)早于PyPI诞生。
迈向Python 3及重大贡献
坎农深度参与importlib模块开发、Python 2→3迁移工程、文档体系重构及PEP撰写。他主导移除了函数签名中的元组参数解包(一项Python 3关键变更)。2007年PyCon大会上,凯-平·叶提出异议,但该变更最终获准落地。
凯-平·叶主导开发了pydoc、cgitb、inspect及异常链(exception chaining)等核心工具。
早期挑战在于时间有限且完全依赖志愿者投入。坎农积极倡导企业赞助,并成功推动落实。如今,Python软件基金会(PSF)已聘用全职工程师:卢卡什、佩特尔、谢尔盖与塞思(负责安全及Alpha-Omega项目)。
真正起决定性作用的因素
- 始于一道“食谱”:
strptime贡献让他数月内便跻身核心团队。 - 摘要即敲门砖:主动整理python-dev邮件列表内容,助他迅速获得可见度与信任。
- 社区体量小:2002年仅约20名活跃贡献者,个人影响力立竿见影、触手可及。
- 志愿先行文化:持续贡献多年后,才迎来正式雇佣关系。
- 生态演进:从边缘小众项目,成长为拥有专业工程团队支撑的成熟技术生态。
— Editorial Team
暂无评论。