Python 的後Guido時代

Python 的后Guido时代

Guido van Rossum最近宣佈,他將從Python的“終身仁慈獨裁者”(BDFL)角色中退出,這引起了一些驚訝,不過也不算很震驚,至少在核心開發人員社區中是這樣的。在一些不太重要的功能點上,Van Rossum幾年來一直在傳達某些變化。儘管也有最近的原因(如“PEP 572 問題”),這有點讓人沮喪。與此同時,Python項目需要解決如何自治發展——然而Van Rossum沒有指定接班人,而是將社區治理問題留給了那些核心開發人員們。

Van Rossum在過去的幾年裡有些筋疲力盡,其中至少有一部分原因是因為參與他所感興趣的PEP的有爭議討論引起的。圍繞PEP 572(“賦值表達式”)的討論很可能是Python歷史上妨礙Python發展的最嚴重問題。它涉及了多線程,同時在兩個不同的郵件列表中(開始於python-ideas,一旦“就緒”,會被提交到python-dev),產生了兩個獨立的民意調查(大家都不傾向於增加該特性),同時,有時候這些討論看起來似乎是無休止的爭論。也許最令人惱火的是它的反覆被提出;不管PEP的作者(最初是Chris Angelico,在快要結束時Van Rossum和Tim Peters 也加入進來)多次與其他一些人不斷的重複宣佈反對,同樣的想法仍然被一次又一次地被提出。很顯然,許多人只是在情感上(有時是惡作劇的)對這個建議作出反饋:根本不看PEP內容或任何討論,然後大聲宣稱他們的觀點顯然是唯一明智的。

Van Rossum說他將作為常規核心開發人員繼續“堅持一段時間”,但是他把上述問題留給社區,去決定項目治理。他似乎很好奇能看到什麼進展:“那麼,你們大家打算怎麼辦?創造民主?無政府主義?獨裁?聯邦?”正如他在辭職信中多次提到的,人們希望他能在未來一段時間內繼續留在BDFL;僅僅因為PEP有爭議的討論而離開,甚至比簡單的退休決定更令人傷心。在所有的良好祝願中,對Van Rossum聲明的許多回復,都表達了一種意思,也是Python社區裡經常說的:捲起袖子開始工作。

新治理

Van Rossum呼籲治理的主要領域有兩個:如何確定PEP進展以及如何添加新核心開發人員。後者似乎已經確定,就是新核心開發人員加入必須基於現有核心開發者的投票決定。他們也是唯一被允許發送郵件到核心委員會郵件列表的人,這裡是Van Rossum發佈辭職聲明的地方,大概是為了避免涉及回覆數百條信息——幾乎毫無疑問都是積極的和感激的,儘管肯定也會有一些不懷好意的信息。

對於PEP和其他主要的有關Python的決策,Christian Heimes建議將三人制或五人制(三人制或五人制的管理機構)作為決策機構。Victor Stinner認為,可以參考PHP的一些做法,核心開發者具有投票權。不過,Stinner的解決方案並不特別受歡迎。Brett Cannon這樣說:

“對我來說,我認為Guido作為BDFL,為我們提供了設計/品味的一致性。通過投票方式由委員會進行的設計決策一點也不吸引我,因為這樣很容易導致偏好的轉變,並且沒有語言統一設計的良好凝聚力,尤其是感覺總會有主觀的選擇(最終必須有人選擇小屋的顏色)。所有人,包括我,也指出,通過讓Guido來決策,我們對社區應該如何表現也保持一貫的觀點,這也是一種資產。我不喜歡Victor的提議。”

三人組(或N人組用於一些小的決定、臨時的N人組)的想法似乎已經有一些吸引力,儘管誰會參與其中,他們將服務多久時間,以及其他細節仍在討論中。還有一個不可避免的問題是,這個組織的名稱是什麼,已經提出了各種各樣的想法,其中一些名稱比其他的顯得更真誠一些。但是,正如Raymond Hettinger所說,還沒到最後關頭:

“我建議我們先轉換到其他問題,暫時推遲主要的更改——這將給我們時間來消化已經正在運行的更改,這將給其他實現更多的機會來趕上這些更改(我們已經忽視它們的改變有一段時間了)。”

大部分討論的是PEP決策過程,以及將如何改變。在Van Rossum辭職之前,他是PEPS的最終仲裁者,除非他把權力交給BDFL代表。許多人認為“Python長老理事會”(PCOE)或“設計組織者”(兩個比較流行的理事機構名稱)的作用在很大程度上是找到合適的人授權,為給定的PEP做決策。如果沒有達成一致意見,該組織也將成為最後的決定機構。

但是還有一個問題,就是人們要在這樣的機構裡任職多久。有些人呼籲“終身”的任命,並且可以隨時離開,而其他人希望看到人們按照時間間隔輪流任職。但是,在確定之前(可能通過PEP或一系列的PEP),必須確定機構的職責。Heimes提出了三個職能:

首先向領域專家們授予職責權利

其次是提供一致性和信任

最後在爭議無休止的情況下給予最終結論

然而,如果主要的作用是授權,那麼它就不需要終身制工作。正如Doug Hellmann所說:

“如果決策的主要途徑是授權,除非仲裁員是絕對必要的,從每個人都能很好理解的討論歷史以及在沒有達成共識(注意“共識”而不是“一致同意”)的情況下保持現狀的意願兩個角度來看,長期一致性和穩定性不如找到一個人可以長期服務於N人組機構更重要。”

“建立系統來支持和鼓勵人員更替,就像我們對待發布經理一樣,降低了被指定人員同意服務時所付出的努力門檻。總體來說,經過了很多的討論,上述這一點在Python社區和普通開源社區中,似乎成為一個重要特徵。”

如何作出決定和溝通也有了說法。有人提議要求全體委員一致投票,但這可能過於嚴格。Barry Warsaw建議不要公佈成員的個人投票,只公佈結果,但是Larry Hastings和其他人對此有不同的看法:

一般來說,我喜歡在治理上更加透明,作為這個機構所管理的社區的成員,我更喜歡對決策過程和思考有更多的洞察。我不認為PCOE為了之間的相互支持和支持機構的決定而統一口徑,或者暗地裡工作。

陽光,而不是黑暗

Hastings和其他人將PCOE視為像美國最高法院類似的一個團體,只有當有爭議無法解決時,才會做出決定。但是Ukasz Langa想知道為什麼三個成員的人數如此受歡迎:

“如此少的成員讓我看到一連串的問題,比如某個組織只需要僱用三個成員中的兩個就可以接管Python的設計過程(始終對第三個成員進行投票)。如果成員中有一人棄權,3人組就會有很高的關聯可能性,諸如此類。”

憲法

他還關心“設計組織者”的作用將如何確定:“Python需要一個‘憲法’,將規定委員會是什麼以及它如何運作。”許多人稱該文件為“PEP 2”,但鑑於它將如何被接受的條件完全懸而未決。Langa 提出了一個建議,但是可能不受Van Rossum的歡迎:“理想情況下,Guido會接受PEP,但我不確定他是否願意。如果情況確實如此,那麼如何做到這一點,使該文件得到所有委員會的普遍認可?”

很多人都認同上述觀點;很顯然,幾乎普遍都是希望Van Rossum仍將發揮積極作用,甚至在某些PEP上擔任BDFL代表。Carol Willing可能總結了很多人對Van Rossum參與的看法:“大多數時候,我希望Guido做任何能震撼他世界的事情。”Cannon有一個具體的想法,如果Van Rossum願意:“在我的理想場景中,人們編寫提出PEP治理模式,Guido選擇一個,使之成為PEP 2。”

對於Van Rossum來說,他確實短暫地參與了這個進程,以幫助闡明他在決定治理方面的作用:“我仍然在這裡,但我想退出辯論,退出決策循環。我還是PSF[Python Software Fund ]的主席。但這不是PSF決定的。你們都做得很好。”

所以某種“神性干預”很可能是不可能的。核心開發人員需要自己解決這個問題。Willing建議在確定治理模式時有兩條指導原則:“如果演進的內容包含Python Zen[PEP 20]和‘我來是為了語言,留下來是為了社區’,那麼我相信Python在技術上會受益。”事實上,Python社區是一個強大的社區,這是Van Rossum在過去28年左右領導社區的遺產。

作為制定治理計劃過程的一部分,Nathaniel Smith正在組織一個信息化的PEP來調查其他開源項目的治理。我們的想法是看看是否有可以用於Python的部件或者零件。另一項努力,其中一些甚至早於Van Rossum辭職,是找出一個更好的方式來討論PEP並試圖就它們達成共識。Hettinger提出了一種可能性:

“對於更大的決定(並且沒有很多即將做出的決定),我有一些關於如何改進討論的建議,以便利害關係方在結果中擁有更加平等的發言權,並且使得討論能夠更加有效率(跟上長期的發展以及活動中的線程需要很多時間)。”

“本質上,這個想法是由所有參與者編輯的wiki/FAQ。它將包括關鍵的例子,支持和反對的論點,以及反駁,這些可以被收集到一個當前狀態的會話中。這與當前的PEP線程有些不同,因為當前PEP作者主導了會話,而其他人的意見可能太容易被忽視。(這個想法是模仿加州立法分析選民指南,該指南概括了提案,並且有來自支持者和反對者的聲明和反駁)。”

Neil Schemenauer用經濟術語說:

“也許這可以看作是一種經濟問題。張貼到PEP討論線程的成本與每個人閱讀該帖子的成本是多少?或者,評論的價值是什麼?每個人閱讀的代價是什麼?”

“用目前的討論方法,成本往往是不成比例的。你有成百上千的人在讀這個帖子。所以閱讀的成本很高。發表一個半生不熟的評論太容易了。用新的主題線啟動一個新帖子線程太容易了。”

一旦他們完成在python-ideas郵件列表中“自由自在的西部”上發起的討論後,他建議為PEP討論建立一個單獨的郵件列表。PEP討論列表將有一些基本規則,試圖最大限度地利用每個人的時間。完全參與者與Python用戶或開發人員的成本不成比例,而這些用戶或開發人員只是想發洩,這很有可能在導致Van Rossum辭職事件中扮演了重要角色。

顯然,塵埃落定和具體計劃的制定需要一些時間,但是人們會感覺到Python社區已經準備好了——即使不是完全願意——自治。不過,這個過程將在開放環境中進行,這對於經歷類似甚至不同的轉換的其他項目可能是有幫助的。在開源世界裡,項目可以相互學習,當然,從技術的角度來看,還可以在治理和社區等領域學習。

我們再把本網站的“謝謝你Guido”加在這裡。我們的網站依賴於Python,已經有16年甚至更長時間了。Van Rossum用他的努力為世界做出了偉大的貢獻,這不可能改變,即使所有這些都已經過去了。在很多方面,Python社區反映了它的BDFL;它通常令人愉快的語氣和對每個人的友好程度是許多其他項目應該嘗試模仿的。

英文原文:https://lwn.net/SubscriberLink/759756/931b0f4617723184/
譯者:接口模式


分享到:


相關文章: