Python 之父透露退位隱情,與核心開發(fā)團(tuán)隊產(chǎn)生隔閡
Python 創(chuàng)始人 Guido van Rossum 前段時間宣布脫離 Python 決策層,辭去所謂的 BDFL (終生仁慈的獨裁者) 身份曾引發(fā)熱議,當(dāng)時他以 PEP 572 改進(jìn)提案的爭吵事件為例,表明其退出緣由。近日 Guido van Rossum 在接受外媒 InfoWorld 采訪時,再次聊到了關(guān)于他退出決策層背后的隱情,以及對 Python 開發(fā)流程的看法。
圖片來源:Dan Stroud (CC BY-SA 4.0)
InfoWorld:為什么辭去 BDFL 職務(wù)?
van Rossum:其實,所謂的終生和獨裁都只是玩笑話。在過去十年的大部分時間里,我一直有退休的念頭。我自身有一些健康問題,雪上加霜的是我需要無數(shù)次地去告訴社區(qū)的人們該如何做事并保持冷靜,也需要無數(shù)次地去向別人解釋 Python 的語言哲學(xué)。
壓倒駱駝的***一根稻草是一個非常有爭議的 Python 改進(jìn)提案(即 PEP 572 ),在我接受它之后,他們?nèi)チ讼?Twitter 這樣的社交媒體并說出了一些真正傷害我個人的話語。而且說這些事情的實際上都是 Python 的核心開發(fā)者,所以我覺得我們相互之間已不再信任。
InfoWorld:能否談?wù)?PEP 572 提案的好處以及為何如此具有爭議性?
van Rossum:該提案是關(guān)于給 Python 添加表達(dá)式內(nèi)賦值的一種語法。總而言之,這是給語言的一個很小的補充,主要是讓人們在需要時,將賦值放在表達(dá)式的中間。其實許多其他語言也有類似的次要功能,包括我熟悉的 C 和 C ++。Java 和 JavaScript 據(jù)我所知也有支持 。它是一種相當(dāng)小的語法,但在某些情況下,可以使代碼更容易編寫,并且通過刪除冗余也更容易閱讀。
很多人認(rèn)為他們知道 Python 的設(shè)計理念是什么,而這個提議他們覺得沒有遵循 Python 的設(shè)計原則。 該提案引起爭議的另一個原因是提案作者有點自我,前面的幾個版本存在一些嚴(yán)重的問題,導(dǎo)致之后即使是同意其基本理念的人,也投了反對票。 這是一個輕微的語法變化,并不激進(jìn)。
InfoWorld:該特性將包含在哪個版本的 Python 中?
van Rossum:Python 3.8 。
InfoWorld:會有另一個 BDFL 嗎? Python 后續(xù)將如何管理?
van Rossum:很遺憾,我目前無法告訴你。我給了核心開發(fā)團(tuán)隊一個任務(wù),就是思考后續(xù)的管理模式以及選出相關(guān)負(fù)責(zé)人。這應(yīng)該會是一個長期的討論,無法立即達(dá)成共識。
現(xiàn)在可以說的是,他們已經(jīng)同意給出提案的截止日期是2018年10月1日。我相信,到2018年11月1日,他們會選出一個合理的管理提案。到2019年1月1日,他們承諾會完成選舉或任命負(fù)責(zé)人。
如果有提案認(rèn)為需要一個 BDFL ,那么該提案必須詳細(xì)列明細(xì)節(jié),比如說要如何選擇 BDFL ,任命期是多久,以及他/她在哪種情況下能被彈劾。不排除到1月1日,他們真能選出這樣一個人。
InfoWorld:您將在 Python 項目中擔(dān)任什么角色?
van Rossum:我將成為常規(guī)貢獻(xiàn)者或常規(guī)核心開發(fā)者的角色,偶爾寫一些和審查一些代碼。我將嘗試專注于指導(dǎo)核心開發(fā)者,尤其是新的核心開發(fā)者,以及女性和少數(shù)群體,因為核心開發(fā)團(tuán)隊的多樣性是我的目標(biāo)之一。
InfoWorld:您是否擔(dān)心作為 BDFL ,您的離開可能會嚇跑一些 Python 愛好者?
van Rossum:我不這么認(rèn)為。 Python 擁有一個非常健康的社區(qū),核心團(tuán)隊也擁有非常強大的能力。如果我認(rèn)為他們無法克服這一點困難并在未來幾十年內(nèi)繼續(xù)***語言發(fā)展,我就不會辭職。我認(rèn)為這只是一次輕微的打擊,盡管出現(xiàn)了,但我期待后續(xù)版本的成功以及開發(fā)流程的逐步演變。
InfoWorld:Python 過去幾年的開發(fā)流程是怎樣的?如何看待其未來發(fā)展?
van Rossum:語言在不斷變化,我們?yōu)樵撜Z言和庫添加了一些新特性。過去幾年變化較大的可能是語言的流行度,直到五年前,Python 還一直感覺自己是一個“小玩家”。
之后隨著數(shù)據(jù)科學(xué)的發(fā)展,Python 作為其主要工具出現(xiàn)了令人難以置信的快速發(fā)展。這也導(dǎo)致核心開發(fā)者在決策上有更大的壓力,但是一般情況下,我們發(fā)布語言的方式非常穩(wěn)定。
我們有發(fā)行管理員(release managers),主要版本發(fā)行間隔約一年半,Bug 修復(fù)版本,由于使用需要,可能會在幾個月到大半年左右。
我們也有非常穩(wěn)定的 Python 改進(jìn)提案流程。也許隨著社交媒體的發(fā)展 PEP 的方式有所改變,但總的來說,除了幾年前從 Mercurial 轉(zhuǎn)向 Git 之外,PEP 一直是一個非常穩(wěn)定的流程,沒有出現(xiàn)過失誤和問題。