Python大咖谈 - Brett Cannon(一)

Python大咖谈_Brett Cannon

Python大咖谈 - Kenneth Reitz 与 Mike Driscoll
Python大咖谈 - Brett Cannon(一)
Python大咖谈 - Brett Cannon(二)

Brett Cannon

Brett Cannon,加拿大软件工程师,Python 核心开发者,Oplop [1]项目作者,曾任谷歌软件工程师,现任微软首席软件开发师,主要负责开发 VSCode 编辑器[2]。2003 年,Brett 加入 Python 软件基金会(PSF),2013 年与 2014 年任 Python 软件基金会董事,曾为 PyCon 美国委员会成员,2017 年 PyData 西雅图大会时任大会主席。Brett 开发了 Python 的 importlib 模块,他曾负责领导 CPython 迁移至 GitHub,其开源成就包括 caniusepython3 项目[3] 与 17 个 Python Enhancement Proposal(PEP)。

VSCode 编辑器

访谈主题:核心开发者,Python 2.7 与 Python 3.x 对比,Python 冲刺活动。


Mike Driscoll:您为什么会当程序员?

Brett Cannon:从记事起,我就对计算机感兴趣。我们小学机房里的计算机里全是 Apple IIe,这在当年可是顶配机型,算得上从小就接触计算机了。

Apple IIe

初中毕业那年暑假,我上过一次计算机课外班,课程内容主要是 Apple BASIC。第一周,我就学完了全部课程,学的效果也蛮不错。不过,当时还真没想过日后会以此为生。

高中几年都没再学过编程,直到快上大学,选专业的时候,我妈提了两点要求,选修一门哲学,还有就是选修一门计算机编程,我都答应了,这两门课都是我的真爱。

我只用两周就读完了《C 语言入门》,那可是要学整整一学期的教科书。读完那本书当天放学后,我在电脑前奋战了一晚,连晚饭都忘了吃,但那天晚上实现了一个井字棋游戏,真开心!编程给人一种创新无极限的满足感,这就是我为什么选择编程。

Brett Cannon:‘编程给人一种创新无极限的满足感,这就是我为什么选择编程。’

那时,井字棋谜题已经被人破解了,但我觉得把它的逻辑写出来,编成程序,当游戏玩才完美。直到那天晚上,花了足足六个小时,实现了这个游戏,幸福感油然溢满心中。自此,我知道了编程的力量,无限的可能、自由的空间、解决问题的能力,这就是编程的魅力所在,从那之后,我就打定主意干这行了。

Driscoll:那您是怎么知道 Python 的,又是怎么加入 Python 社区的呢?

Cannon:我后来考上了加大伯克利分校,获得了哲学学士学位,不过我依然坚持在上计算机科学的课。伯克利的计算机科学基础课需要入门考试,但我只学过 C 语言,不懂面向对象编程,需要找一门支持面向对象的编程语言学学看,我就是这个时候开始接触 Python,学了 Python 后,我就爱上了这门语言,自此之后,我自己的程序都是用 Python 开发的。

加大伯克利分校

有一次,开发过程中要用 time.strptime 函数把字符串显示为 datetime 格式,并把字符串解析为时间元组。当时用的是 Windows,但 Windows 那时还不支持 time.strptime,我只好自己想办法实现了这个功能,虽然解析字符串时还要预先插入本地信息,但不管怎么说,总算是能用了。

ActiveState 的 cookbook 网站那时名气很大,我把处理 strptime 的解决方法贴到了 ActiveState 上。后来, O'Reilly 出版了 《Python Cookbook》 第一版,Alex Martelli 把这段代码加到了书里,这是那本书里最长的代码示例。

《Python Cookbook》 第一版

Brett Cannon:我把处理 strptime 的解决方法贴到了 ActiveState 上。

但我对那个解决方法不满意,毕竟还要手动输入本地信息,这让我很焦虑,整天都在琢磨怎么才能把它给解决了,直到从伯克利毕业一个礼拜后才搞定了这个问题。搞定这个解决方案确实花了不少时间,但用户再也不用自己输入本地信息了。

我和 Alex Martelli 之前曾就这个问题邮件交流过几次,把识别本地信息的功能搞定后,我给他发了封邮件,“嗨,这个问题已经解决了,以后再也不用输入本地信息了,但怎么上传补丁啊?” Alex Martelli 说:“哦,你给 Python-Dev 这个列表发封邮件,就能提交补丁了。”

Brett Cannon:‘Alex Martelli 说:“哦,你给 Python-Dev 这个列表发封邮件,就能提交补丁了。”’

我给这个列表发了邮件,最先回复我的是 Skip Montanaro,他说:“干得不错,上传文件,我们会审核,只要没问题,就会接受你的修改。” 当时的感觉超酷,能为 Python 做些贡献,我真的觉得特别有意义。

Brett Cannon:‘ 当时的感觉超酷,能为 Python 做些贡献,我真的觉得特别有意义。’

这是大学毕业后、上研究生前那年的事。当时,我想考计算机科学研究生,不过考研究生除了要求在大学期间上过计算机课,还要求更多的编程经验。我想为 Python 做些贡献或许会对此有些帮助。反正那会儿有的是时间,我就决定去 Python 社区试试水。

Brett Cannon:‘我就决定去 Python 社区试试水。’

加了邮件列表后,我就开始四处找人问各种问题。还是那年,我着手为 Python-Dev 做摘要,这活儿当时没人干。不过我有充足的时间,这项工作对学习 Python 还有个好处,就是逼着我阅读 Python-Dev 里的每封邮件。

现在想想做摘要还是挺有意思的,我得关注别人没时间关心的那些小问题,这样一来,我就总能在别人之前发现这些问题,然后挑出一些我能解决的小问题,边修复,边学习,一直都闲不下来。就这样,一边拿着给 Python-Dev 做摘要这件事当幌子,一边找人问更多问题。

随着了解的东西越来越多,2003 年,第一届 PyCon 大会后,我就成了 Python 核心开发者。从那时起,我彻底对 Python 着了迷,我渴望了解这个团队,还有因此结识的新朋好友。我喜欢编程,就像是着了魔,从那天开始,我中断维护 Python 的时间竟然从没超过一个月[4]

https://wiki.python.org/moin/GetInvolved

我的意思不是说必须要成为核心开发者才能加入 Python 社区。只要喜欢 Python,你就会迷上这个社区,在我看来这是理所当然的事情。

Driscoll:您为什么会写博客介绍 Python?

Cannon:写博客也是参与 Python 社区活动的一种表现方式,我喜欢写作,博客只不过是恰逢其会,我喜欢用这种方式与人沟通。自从开始写博客,我就一直坚持不懈,多多少少都会写一些,这种面向世界,传播知识的成就感是一种享受。

Driscoll:对您而言,加入 Python 社区的时机非常好,这点是不是非常重要?您是否认为加入某个项目的时间越早越好?

Cannon:没错,我的确是在正确的时间,站在了正确的位置,我当时有足够的空闲时间,时间充裕,才能全情投入。

刚加入 Python 团队时,Python 的体量远没有现在这么大。那时,我刚读研,记得有人问过我课余时间干什么,我说在给 Python 做贡献,他们说,“就是那个要打空格的编程语言吗?” 从这个回答你就能看出我接触 Python 的时间非常早。

没错,2005 年那会儿,大家对 Python 开始感兴趣前,我就加入 Python 社区了,时机确实很不错。有时候,我想要是能再早点接触 Python 就好了,但那样的话我的岁数又太小了,可能搞不定这么复杂的事情。所以说,一切都是缘分。

Python大咖谈 - Kenneth Reitz 与 Mike Driscoll
Python大咖谈 - Brett Cannon(一)
Python大咖谈 - Brett Cannon(二)


  1. 通过账户名与主密码生成账户密码的工具。 ↩

  2. 主要是 VSCode 的 Python 组件。 ↩

  3. 判断项目是否可以迁移至 Python3 的工具。 ↩

  4. 2016 年 10 月,Cannon 曾有 1 个月中止过 Python 社区的维护,主要是对 bug 提交者的态度不满,同时也是对开源开发者受到的不公待遇有些寒心,原文见 Why I took October off from OSS volunteering。 ↩

你可能感兴趣的:(Python大咖谈 - Brett Cannon(一))