Python之父講述退位原因,以及 Python 的未來將何去何從
Python 之父講述退位原因,以及 Python 的未來將何去何從。
在 Python 社區(qū),Python 的發(fā)明者 Guido Van Rossum 被稱為 “仁慈的終生獨裁者”(BDFL,Benevolent Dictator for Life)。今年 7 月 12 日的時候他突然宣布退位了。
消息一出,一時間震驚了整個 Python 世界。當(dāng)時他以 PEP 572 改進提案的爭吵事件為例,表明其退出緣由。
Guido van Rossum 于 1990 年發(fā)明 Python,他相信 Python 這門語言即使少了他的領(lǐng)導(dǎo)也依然能持續(xù)發(fā)光發(fā)熱?,F(xiàn)年 62 歲的 van Rossum 是一名 Dropbox 的首席工程師,近日他接受了外媒 InfoWorld 的采訪。
你為什么辭去 BDFL 職務(wù)?
van Rossum:所謂的終生和獨裁都僅僅是玩笑。實際上,最近十年,退休的念頭都在我腦海里徘徊。
我年齡已經(jīng)不小了,身體也有一些問題。作為 Python 社區(qū)的主要負責(zé)人,我需要一遍又一遍地去教社區(qū)的其他成員如何開展工作,同時需要一遍又一遍地向 Python 新人解釋 Python 的語言哲學(xué),這樣超負荷的工作讓我的健康狀況更為惡化。
事情的引爆點在于一個頗具爭議的 Python 改進提案(PEP 572),當(dāng)我接受這個提案之后,Twitter 等社交媒體上出現(xiàn)了一些中傷我的評論。而更為心寒的是,這些評論居然大多來自 Python 的核心成員,我對他們失望至極!
你能談?wù)?nbsp;PEP 572 提案的好處以及它為什么如此充滿爭議嗎?
van Rossum:該提案提出了一種新的語法,它允許表達式內(nèi)賦值。總得來說,這是對 Python 語言的一個小補充。開發(fā)人員如果需要的話,可以在表達式中進行賦值。
很多編程語言都有這個小功能,比如我熟悉的 C 和 C++。據(jù)我所知,Java 和 JavaScript 也支持。它是一種相當(dāng)小的語法,但在某些情況下,它可以讓代碼編寫變得更容易,并且通過刪除冗余能夠提升代碼的可讀性。
很多人覺得自己熟知 Python 的設(shè)計理念,他們認為該提案沒有遵循 Python 的設(shè)計原則。該提案引發(fā)爭議的另一個原因在于其作者自己的失誤,之前幾個版本就存在一些嚴重的問題,因此這一次,即使之前認同其基本理念的人也投了反對票。但這只是一個輕微的句法變化,并不激進。
該特性將包含在哪個版本的 Python 中?
van Rossum:它將出現(xiàn)在 Python 3.8 中。
Python 3.8 將于一年半后發(fā)布。此前我們曾發(fā)文探討過為何 Python 的速度如此之慢,在這一更新版本中,Python 3 啟動慢的問題將會是 CPython 核心團隊主要解決的問題之一。
會有一個新的 BDFL 嗎? Python 后續(xù)將如何管理?
van Rossum:很抱歉,目前確實無可奉告。
實際上,我給核心開發(fā)團體(擁有提交權(quán)限的 100 多人)指定了一項任務(wù),讓他們思考今后的管理模式并選出新的負責(zé)人。他們在解決 Python 問題的同時,需要認真完成該任務(wù)。這可能需要長期討論,短期內(nèi)很難達成共識。
令我高興的是他們欣然接受了這個任務(wù),并制定了任務(wù)進度表。
他們會在 2018 年 10 月 1 日前完成提案的收集。然后,在 2018 年 11 月 1 日前,他們會從眾多提案中選出最終的管理方案。然后到 2019 年 1 月 1 日,他們會整理好管理方案的相關(guān)文件,并選舉或者任命新的負責(zé)人。
如果有提案指出需要 BDFL,則該提案必須對其詳細說明,比如如何選舉 BDFL,BDFL 任職時長,以及 BDFL 的彈劾機制。我想最快 10 月 1 日,最晚明年 1 月 1 日,將會產(chǎn)生一名新的 BDFL。
Python 的核心成員都有誰?
van Rossum:Python 的核心成員有很多。
比如 Brett Cannon,他是一位真正的大神。又如 Tim Peters,作為我的良師益友,他提出了“Python 之禪”,生動地詮釋了 Python 的編程哲學(xué)。另外,Barry Warsaw 也是核心開發(fā)人員之一。
未來你將在 Python 項目中擔(dān)任怎樣的角色?
van Rossum:我將成為一名普通的貢獻者或者核心開發(fā)者。偶爾會編寫或者審查代碼。此外,我將嘗試專注于核心開發(fā)人員的指導(dǎo)工作上,尤其是新的核心開發(fā)人員、女性或者少數(shù)民族人士。
因為我個人很推崇核心開發(fā)人員的多樣性。
作為曾經(jīng)的 BDFL,你覺得自己的離開會不會嚇跑一些 Python 愛好者?
van Rossum:我認為不至于。Python 社區(qū)非常健康,Python 核心團隊非常強大且充滿活力。我相信他們能夠克服這點小困難,并在未來幾十年里繼續(xù)推動 Python 前進,如果連這點自信都沒有,我也不會辭職。盡管事已至此,但這只是一個小變故,我對 Python 的未來滿懷信心。
Python 在過去幾年的開發(fā)流程是怎樣的?你如何看待它未來的發(fā)展?
van Rossum:很明顯,在過去幾年 Python 語言發(fā)生了顯著的變化。我們?yōu)檎Z言和庫新增了一些特性,最大的變化可能在于其流行度的劇增。大約五年前,Python 都還是一門非常小眾的編程語言。
也正是從五年前開始,隨著數(shù)據(jù)科學(xué)的興起,Python 有幸成為其主要工具,得以廣泛流行。這也導(dǎo)致核心開發(fā)人員的決策壓力劇增,但是總得來說,我們開發(fā)和發(fā)布的方式都非常穩(wěn)定。
我們有負責(zé)發(fā)布的管理人員,主要版本的發(fā)布周期大約一年半。對于修復(fù) bug 的版本,根據(jù)具體情況,其間隔時間可能是幾個月到大半年不等。
我們有非常穩(wěn)定的 Python 改進提案流程,也許隨著社交媒體的發(fā)展 PEP 的方式有所改變。但總得來說,除了幾年前從 Mercurial 轉(zhuǎn)向 Git 之外,PEP 的流程一直非常穩(wěn)定,沒有出現(xiàn)過問題。