Python大咖談 - Brett Cannon(一)

Python大咖談_Brett Cannon

Python大咖談 - Kenneth Reitz 與 Mike Driscoll
Python大咖談 - Brett Cannon(一)
Python大咖談 - Brett Cannon(二)

Brett Cannon

Brett Cannon,加拿大軟件工程師,Python 核心開發(fā)者,Oplop [1]項(xiàng)目作者,曾任谷歌軟件工程師,現(xiàn)任微軟首席軟件開發(fā)師,主要負(fù)責(zé)開發(fā) VSCode 編輯器[2]。2003 年,Brett 加入 Python 軟件基金會(PSF),2013 年與 2014 年任 Python 軟件基金會董事,曾為 PyCon 美國委員會成員,2017 年 PyData 西雅圖大會時(shí)任大會主席。Brett 開發(fā)了 Python 的 importlib 模塊,他曾負(fù)責(zé)領(lǐng)導(dǎo) CPython 遷移至 GitHub,其開源成就包括 caniusepython3 項(xiàng)目[3] 與 17 個(gè) Python Enhancement Proposal(PEP)。

VSCode 編輯器

訪談主題:核心開發(fā)者,Python 2.7 與 Python 3.x 對比,Python 沖刺活動。


Mike Driscoll:您為什么會當(dāng)程序員?

Brett Cannon:從記事起,我就對計(jì)算機(jī)感興趣。我們小學(xué)機(jī)房里的計(jì)算機(jī)里全是 Apple IIe,這在當(dāng)年可是頂配機(jī)型,算得上從小就接觸計(jì)算機(jī)了。

Apple IIe

初中畢業(yè)那年暑假,我上過一次計(jì)算機(jī)課外班,課程內(nèi)容主要是 Apple BASIC。第一周,我就學(xué)完了全部課程,學(xué)的效果也蠻不錯。不過,當(dāng)時(shí)還真沒想過日后會以此為生。

高中幾年都沒再學(xué)過編程,直到快上大學(xué),選專業(yè)的時(shí)候,我媽提了兩點(diǎn)要求,選修一門哲學(xué),還有就是選修一門計(jì)算機(jī)編程,我都答應(yīng)了,這兩門課都是我的真愛。

我只用兩周就讀完了《C 語言入門》,那可是要學(xué)整整一學(xué)期的教科書。讀完那本書當(dāng)天放學(xué)后,我在電腦前奮戰(zhàn)了一晚,連晚飯都忘了吃,但那天晚上實(shí)現(xiàn)了一個(gè)井字棋游戲,真開心!編程給人一種創(chuàng)新無極限的滿足感,這就是我為什么選擇編程。

Brett Cannon:‘編程給人一種創(chuàng)新無極限的滿足感,這就是我為什么選擇編程?!?/p>

那時(shí),井字棋謎題已經(jīng)被人破解了,但我覺得把它的邏輯寫出來,編成程序,當(dāng)游戲玩才完美。直到那天晚上,花了足足六個(gè)小時(shí),實(shí)現(xiàn)了這個(gè)游戲,幸福感油然溢滿心中。自此,我知道了編程的力量,無限的可能、自由的空間、解決問題的能力,這就是編程的魅力所在,從那之后,我就打定主意干這行了。

Driscoll:那您是怎么知道 Python 的,又是怎么加入 Python 社區(qū)的呢?

Cannon:我后來考上了加大伯克利分校,獲得了哲學(xué)學(xué)士學(xué)位,不過我依然堅(jiān)持在上計(jì)算機(jī)科學(xué)的課。伯克利的計(jì)算機(jī)科學(xué)基礎(chǔ)課需要入門考試,但我只學(xué)過 C 語言,不懂面向?qū)ο缶幊?,需要找一門支持面向?qū)ο蟮木幊陶Z言學(xué)學(xué)看,我就是這個(gè)時(shí)候開始接觸 Python,學(xué)了 Python 后,我就愛上了這門語言,自此之后,我自己的程序都是用 Python 開發(fā)的。

加大伯克利分校

有一次,開發(fā)過程中要用 time.strptime 函數(shù)把字符串顯示為 datetime 格式,并把字符串解析為時(shí)間元組。當(dāng)時(shí)用的是 Windows,但 Windows 那時(shí)還不支持 time.strptime,我只好自己想辦法實(shí)現(xiàn)了這個(gè)功能,雖然解析字符串時(shí)還要預(yù)先插入本地信息,但不管怎么說,總算是能用了。

ActiveState 的 cookbook 網(wǎng)站那時(shí)名氣很大,我把處理 strptime 的解決方法貼到了 ActiveState 上。后來, O'Reilly 出版了 《Python Cookbook》 第一版,Alex Martelli 把這段代碼加到了書里,這是那本書里最長的代碼示例。

《Python Cookbook》 第一版

Brett Cannon:我把處理 strptime 的解決方法貼到了 ActiveState 上。

但我對那個(gè)解決方法不滿意,畢竟還要手動輸入本地信息,這讓我很焦慮,整天都在琢磨怎么才能把它給解決了,直到從伯克利畢業(yè)一個(gè)禮拜后才搞定了這個(gè)問題。搞定這個(gè)解決方案確實(shí)花了不少時(shí)間,但用戶再也不用自己輸入本地信息了。

我和 Alex Martelli 之前曾就這個(gè)問題郵件交流過幾次,把識別本地信息的功能搞定后,我給他發(fā)了封郵件,“嗨,這個(gè)問題已經(jīng)解決了,以后再也不用輸入本地信息了,但怎么上傳補(bǔ)丁???” Alex Martelli 說:“哦,你給 Python-Dev 這個(gè)列表發(fā)封郵件,就能提交補(bǔ)丁了。”

Brett Cannon:‘Alex Martelli 說:“哦,你給 Python-Dev 這個(gè)列表發(fā)封郵件,就能提交補(bǔ)丁了?!薄?/p>

我給這個(gè)列表發(fā)了郵件,最先回復(fù)我的是 Skip Montanaro,他說:“干得不錯,上傳文件,我們會審核,只要沒問題,就會接受你的修改?!?當(dāng)時(shí)的感覺超酷,能為 Python 做些貢獻(xiàn),我真的覺得特別有意義。

Brett Cannon:‘ 當(dāng)時(shí)的感覺超酷,能為 Python 做些貢獻(xiàn),我真的覺得特別有意義?!?/p>

這是大學(xué)畢業(yè)后、上研究生前那年的事。當(dāng)時(shí),我想考計(jì)算機(jī)科學(xué)研究生,不過考研究生除了要求在大學(xué)期間上過計(jì)算機(jī)課,還要求更多的編程經(jīng)驗(yàn)。我想為 Python 做些貢獻(xiàn)或許會對此有些幫助。反正那會兒有的是時(shí)間,我就決定去 Python 社區(qū)試試水。

Brett Cannon:‘我就決定去 Python 社區(qū)試試水?!?/p>

加了郵件列表后,我就開始四處找人問各種問題。還是那年,我著手為 Python-Dev 做摘要,這活兒當(dāng)時(shí)沒人干。不過我有充足的時(shí)間,這項(xiàng)工作對學(xué)習(xí) Python 還有個(gè)好處,就是逼著我閱讀 Python-Dev 里的每封郵件。

現(xiàn)在想想做摘要還是挺有意思的,我得關(guān)注別人沒時(shí)間關(guān)心的那些小問題,這樣一來,我就總能在別人之前發(fā)現(xiàn)這些問題,然后挑出一些我能解決的小問題,邊修復(fù),邊學(xué)習(xí),一直都閑不下來。就這樣,一邊拿著給 Python-Dev 做摘要這件事當(dāng)幌子,一邊找人問更多問題。

隨著了解的東西越來越多,2003 年,第一屆 PyCon 大會后,我就成了 Python 核心開發(fā)者。從那時(shí)起,我徹底對 Python 著了迷,我渴望了解這個(gè)團(tuán)隊(duì),還有因此結(jié)識的新朋好友。我喜歡編程,就像是著了魔,從那天開始,我中斷維護(hù) Python 的時(shí)間竟然從沒超過一個(gè)月[4]。

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

我的意思不是說必須要成為核心開發(fā)者才能加入 Python 社區(qū)。只要喜歡 Python,你就會迷上這個(gè)社區(qū),在我看來這是理所當(dāng)然的事情。

Driscoll:您為什么會寫博客介紹 Python?

Cannon:寫博客也是參與 Python 社區(qū)活動的一種表現(xiàn)方式,我喜歡寫作,博客只不過是恰逢其會,我喜歡用這種方式與人溝通。自從開始寫博客,我就一直堅(jiān)持不懈,多多少少都會寫一些,這種面向世界,傳播知識的成就感是一種享受。

Driscoll:對您而言,加入 Python 社區(qū)的時(shí)機(jī)非常好,這點(diǎn)是不是非常重要?您是否認(rèn)為加入某個(gè)項(xiàng)目的時(shí)間越早越好?

Cannon:沒錯,我的確是在正確的時(shí)間,站在了正確的位置,我當(dāng)時(shí)有足夠的空閑時(shí)間,時(shí)間充裕,才能全情投入。

剛加入 Python 團(tuán)隊(duì)時(shí),Python 的體量遠(yuǎn)沒有現(xiàn)在這么大。那時(shí),我剛讀研,記得有人問過我課余時(shí)間干什么,我說在給 Python 做貢獻(xiàn),他們說,“就是那個(gè)要打空格的編程語言嗎?” 從這個(gè)回答你就能看出我接觸 Python 的時(shí)間非常早。

沒錯,2005 年那會兒,大家對 Python 開始感興趣前,我就加入 Python 社區(qū)了,時(shí)機(jī)確實(shí)很不錯。有時(shí)候,我想要是能再早點(diǎn)接觸 Python 就好了,但那樣的話我的歲數(shù)又太小了,可能搞不定這么復(fù)雜的事情。所以說,一切都是緣分。

Python大咖談 - Kenneth Reitz 與 Mike Driscoll
Python大咖談 - Brett Cannon(一)
Python大咖談 - Brett Cannon(二)


  1. 通過賬戶名與主密碼生成賬戶密碼的工具。 ?

  2. 主要是 VSCode 的 Python 組件。 ?

  3. 判斷項(xiàng)目是否可以遷移至 Python3 的工具。 ?

  4. 2016 年 10 月,Cannon 曾有 1 個(gè)月中止過 Python 社區(qū)的維護(hù),主要是對 bug 提交者的態(tài)度不滿,同時(shí)也是對開源開發(fā)者受到的不公待遇有些寒心,原文見 Why I took October off from OSS volunteering?

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容