後 Guido 時代,Python 社群的治理問題成為萬眾矚目的問題(國內開發者似乎比較淡定…)。目前,關於 7 種治理模式的投票,已經進行到了一半,事情進展得是否順利呢?核心開發者們對這些候選提案是什麼看法呢,我們能否預測出最終的投票結果呢?
我對這些話題非常感興趣,此前翻譯了一篇《Python之父退位後,最高決策權花落誰家?》,介紹了 7 種治理提案的差異,還寫了一篇《這件正在發生的事,關乎所有的Python開發者……》,介紹此次投票的前因與重要意義。至於本文,我整理了部分核心開發者的討論內容,帶領大家一窺此次重大投票的幕後,瞭解核心開發者的投票意向,最後,則是做了一個小小的預測。
1. Guido現身說了什麼?
在提出與討論這些治理提案期間,Guido 一直保持沉默,現如今,當投票環節正式開啟後,他也終於現身了。
他提出了什麼問題?表達了什麼觀點?以下內容整理自他的幾次回帖。
(1)為某個/些 PEP 拉票,是否 OK?(注:他想發表對於某些 PEP 的看法,以及自己的投票建議,故詢問此做法是否 OK ?)
(2)對投票系統的討論,我不感興趣,而對每個治理提案的細節的討論又太吵鬧(too high volume),所以我躲開了,只到現在才有空讀/瀏覽完所有的提案。我希望大家不要因為我贊同哪個 PEP 而感到壓迫,但我也希望大家是真正地想知道我偏向哪個 PEP。
(3)我不放心那些想把 PEP 流程固定死的治理提案,所以首選的提案就只剩下 8016 (指導委員會)和 8011 (三巨頭)了。
(4)我不喜歡在初始的提案文件裡就面面俱到,治理模型的結構應該要不易改變,而實施過程中的事情不能不易改變。(注:此話贊同了某核心開發者,後者提到 8016 通過選出委員會來決定如何行事)。
(5)對於引入外部投票,我表示要警惕。幾個月前,Victor 提交 PR 來修改某些帶政治意味的措辭,很多種族主義者跑來投反對意見,當修改被合入後,他們就抗議。我意識到 PEP-8014 有相應機制來應對這種事,但我個人寧願不要邀請外人來參與我們的選舉。
Guido 表示他將要詳細寫出對每個治理提案的看法,但從幾次對話中已經能看出,他最偏向於 PEP-8016。他的意見得到了一些認可,核心開發者 Paul Moore 就表示,我們無法預知未來會發生的所有事情,因此就要求治理提案能夠靈活地應對各種變化。
不過,Guido 還表示,他不會參與投票了。
有開發者勸他重新考慮。就看在剩下的幾天裡,他會不會改變主意了。
2. 其它開發者的看法?
由於不知道核心開發者的確切數量,不清楚投票的總體進展,我只能根據網站(https://discuss.python.org)上的相關話題,來做小樣本的分析了。
在“哪個治理提案是你最喜歡的”話題下,共有 13 名核心開發者參與了討論。在模擬投票中,有 10 人蔘與投票(每人最多投 3 票),結果顯示,PEP-8016 獲得8票,遙遙領先,緊隨其後的是 PEP-8012 和 PEP-8015,各得到了 4 票。
值得注意的是,這個結果在 Guido 現身前就定型了,如此看來,PEP-8016 無疑是最受人青睞的。
國內開發者關注於此話題的人比較少,從唯二發起過模擬投票的公眾號 (Python貓 與 程式設計派 )的資料來看,總計 187 人蔘與投票,得票最高的前三名為:PEP-8010(52票,佔比 28%),PEP-8015(40票,佔比21%),PEP-8011(36票,佔比19%)。(PS:需要說明的是,我們都無法參與官方投票,公眾號中的模擬投票僅僅是一份娛樂性的民意調查。)
然而,對比核心開發者與“邊緣開發者”發起的投票,兩者的差異之大,頗值得玩味。為什麼有這麼大的差異呢?
在我們發起的“民意調查”中獲得最高票的 PEP-8010,在核心開發者中並不怎麼受歡迎。比如,在 Antoine Pitrou 看來,PEP-8010 就是他最不放心的提案,他不指名地說有兩個人會競選 BDFL,但是,其中一個心善卻不一定能處理好多方壓力,另一個則是爭議性人物,若他當選 BDFL 則會成為“宣戰的原因”(a casus belli)。
另一名核心開發者 Nathaniel J. Smith 也非常反對 PEP-8010,他以自己在一些小專案中擔任 BDFL 的親身經歷,來說明被選成 BDFL 是多麼“艱難和恐怖”(incredibly hard and scary),還為此打了個誇張的比方:
With PEP 8010 I feel like we`re trying to decide who to fly a 747, by voting, and none of the candidates have a pilot`s license。
由此可以看出,核心開發者在給治理提案投票的時候,不僅僅會考慮到提案本身,更重要的是,他們還考慮到由誰來落實新的治理提案。這就是“局中人”的視角了吧,跟我們這些“邊緣人”的視角確實很不一樣。這很好地解釋了,為什麼兩份模擬投票會得到截然不同的結果。
明白了這一層邏輯,等到最終投票結果出來的時候,大家也許就不會感到太驚訝了吧。
那麼,哪種治理提案最可能被選中呢?我在此預測,最終勝出的治理提案是……
PS:為了持續關注此話題,我專門建了個微信交流群。感興趣的同學可通過本公眾號(Python貓)選單欄的“聯絡作者”,加我為好友,傳送暗號“PEP投票”進群(其它用意者勿擾)。參與討論的小夥伴,將有機會獲得一本技術書籍。
參考閱讀:
7種提案的對比:http://t.cn/Eyi8D7b
此事件的重要性:http://t.cn/EygFM5Q
本文原創並首發於微信公眾號【Python貓】,後臺回覆“愛學習”,免費獲得20+本精選電子書。