Python之父Guido van Rossum因最近的“PEP 572”事件宣布放棄他在Python社區(qū)“仁慈大君”的稱號(hào),且沒有任命繼任者,并將治理問題留給了核心開發(fā)人員。今后的PEP572乃至整個(gè)Python該何去何從?
Guido van Rossum最近宣布,他決定放棄他在Python社區(qū)“仁慈大君”的稱號(hào),雖然這令人有些意外,但在核心開發(fā)社區(qū)卻并沒有太大的震驚。雖然最近的“PEP 572混亂”事件是不幸的,但 Van Rossum幾年來一直在為Python暗暗的做著努力。 與此同時(shí),該項(xiàng)目需要弄清楚如何管理自己前進(jìn) - Rossum沒有任命繼任者,并將治理問題留給了核心開發(fā)人員。
在過去的幾年里,Rossum一直燃燒著他的熱情,起碼在一定程度上是因?yàn)樗恢痹跒樽约焊信d趣的PEPs進(jìn)行有爭(zhēng)議的討論。關(guān)于PEP 572(“賦值表達(dá)式”)的討論很可能是Python歷史上最糟糕的冒險(xiǎn)。
它跨越了多個(gè)巨大的線程,在兩個(gè)不同的郵件列表上,生成了兩個(gè)獨(dú)立的投票(poll)(這兩個(gè)投票都不支持這個(gè)特性),而且有時(shí)似乎是沒完沒了的。也許最讓人惱火的是它的重復(fù)性;同樣的想法被一次又一次地提出來,不管PEP的作者(最初是Chris Angelico,后來在快結(jié)束時(shí)Van Rossum和Tim Peters加入了進(jìn)來)和其他人不斷地反對(duì)他們的論點(diǎn)。很明顯,許多人只是在感情上(有時(shí)是表面上)對(duì)這個(gè)建議做出反應(yīng):不讀激勵(lì)語或任何討論,然后大聲宣布他們的觀點(diǎn)顯然是唯一明智的。很明顯,許多人只是在感情上(有時(shí)是表面上)對(duì)這個(gè)建議做出反應(yīng):不閱讀PEPs或任何討論,然后大聲宣布他們的觀點(diǎn)顯然是唯一明智的。
Van Rossum說,作為一個(gè)普通的核心開發(fā)人員,他將會(huì)在“一段時(shí)間內(nèi)”堅(jiān)持下去,但他留給社區(qū)來決定未來項(xiàng)目的治理。他似乎很好奇會(huì)發(fā)生什么:“那你們都要做什么?”創(chuàng)建一個(gè)民主嗎?無政府狀態(tài)?一個(gè)獨(dú)裁政權(quán)?聯(lián)盟?”正如許多人在辭職信中指出的那樣,人們希望他在今后一段時(shí)間內(nèi)繼續(xù)擔(dān)任“仁慈大君”;如果離開只是因?yàn)橛袪?zhēng)議的激勵(lì)討論,而不是簡(jiǎn)單的退休決定,那還是挺令人難過的。在所有的祝福之中,許多對(duì)Van Rossum聲明的回復(fù)中都提到了Python社區(qū)人經(jīng)常說的一句話:卷起袖子開始工作。
新的治理
Van Rossum呼吁進(jìn)行治理的主要領(lǐng)域有兩個(gè):如何確定PEPs以及如何添加新的核心開發(fā)人員。后者似乎已經(jīng)根據(jù)現(xiàn)有核心開發(fā)人員的投票決定好了。他們是唯一被允許發(fā)布到核心提交者郵件列表的人,這也是Van Rossum辭職的一方面,大概是為了避免費(fèi)力地瀏覽數(shù)百條信息——幾乎所有信息都是懷揣感激之心的,盡管肯定也會(huì)有一些是不好言論。
對(duì)于PEP和任何其他主要語言決定,Christian Heimes建議triumvirate(三人管理)或quintumvirate(五人管理)作為統(tǒng)治機(jī)構(gòu)。 Victor Stinner認(rèn)為應(yīng)該考慮核心開發(fā)人員對(duì)功能提案進(jìn)行投票的PHP流程。 不過,Stinner的解決方案并不是特別受歡迎。 Brett Cannon這樣說:
對(duì)于我來說,我認(rèn)為Guido為我們作為“仁慈大君”所提供的一個(gè)關(guān)鍵資產(chǎn)就是設(shè)計(jì)/品味的一致性。設(shè)計(jì)由委員會(huì)通過投票來決定并不吸引我,太容易導(dǎo)致偏好的變化,并且沒有很好的凝聚力和語言的整體設(shè)計(jì),特別是考慮到總是會(huì)有主觀的選擇。包括我在內(nèi)的人們也指出,應(yīng)該讓Guido敬仰你,我們對(duì)社區(qū)的行為有非常一致的看法,這也是一種資產(chǎn)。
triumvirate(或一個(gè)小的、奇數(shù)N的N-virate)的想法似乎得到了一些支持,盡管“誰將加入”、“他們將服務(wù)多久”以及其他細(xì)節(jié)仍在討論中。還有一個(gè)不可避免的問題是,這個(gè)群體的名字可能是什么?人們提出了各種各樣的想法。但是,正如Raymond Hettinger所說,這件事情沒有這么著急:
就目前而言,我建議我們轉(zhuǎn)向低齒輪(low gear)以及推遲主要語言改變的時(shí)間,這將給我們時(shí)間來消化這些變化,給其他實(shí)施策略更多的機(jī)會(huì)來趕上進(jìn)度。
討論的大部分內(nèi)容是PEP決策過程以及它將如何改變。在他辭職之前,Van Rossum是PEPs的最后仲裁者,除非他將自己的權(quán)力委托給了另一位“仁慈大君”。許多人認(rèn)為,“Python長(zhǎng)老理事會(huì)”(PCOE)或“設(shè)計(jì)專員”(治理機(jī)構(gòu)的兩個(gè)比較流行的名稱)的作用主要是找到合適的人選,以便在給定的PEP上進(jìn)行決策。如果不能就一項(xiàng)決定達(dá)成協(xié)商一致意見,該小組也將是最后的決定機(jī)構(gòu)。
但也存在人們?cè)谶@樣一個(gè)機(jī)構(gòu)服務(wù)多久的問題。有些人要求“終生”任命,因?yàn)樗麄兠靼兹藗兛梢栽谌魏螘r(shí)候辭職,而其他人則希望隨著時(shí)間的推移這些職位能輪換出來。然而,在此之前必須確定(可能通過PEP或一組競(jìng)爭(zhēng)的PEP)該組的作用。Heimes提出了三個(gè)功能:。
首先,將主要責(zé)任委派給領(lǐng)域?qū)<摇?/p>
其次,提供一致性和信任。
最后,在有爭(zhēng)議的bike shedding事件中給出最后的結(jié)論。
但是,如果主要作用是委托,則不需要將其作為終身工作。正如Doug Hellmann所說:
如果決策的主要方法是委托(除非絕對(duì)必要的仲裁者),那么長(zhǎng)期的一致性和穩(wěn)定性不會(huì)因?yàn)檎业絺€(gè)人而在N-virate上服務(wù)很長(zhǎng)時(shí)間,因?yàn)檫@項(xiàng)工作的完成是需要對(duì)評(píng)論有很好的理解以及有意愿在沒有達(dá)成共識(shí)的情況下保持現(xiàn)狀。
就像我們與發(fā)布經(jīng)理所做的那樣,構(gòu)建系統(tǒng)以支持和鼓勵(lì)人員更替,降低了當(dāng)某人同意服務(wù)時(shí)的工作量。考慮到在Python社區(qū)和開放源代碼中有很多關(guān)于倦怠的討論,這似乎是一個(gè)重要的特性。
如何制定和溝通決策也是一個(gè)問題。有人建議要求機(jī)構(gòu)一致投票,但這可能過于嚴(yán)格。Barry Warsaw建議不要公布成員的個(gè)人投票,而只是公布結(jié)果,但Larry Hastings和其他人的意見不同:
我更喜歡在治理方面提高透明度,作為受本機(jī)構(gòu)管理的社區(qū)成員,我更傾向于更多地了解流程和進(jìn)入決策的思路。我不認(rèn)為PCOE要求作為一個(gè)統(tǒng)一的秘密工作,應(yīng)該讓他們相互支持,并支持機(jī)構(gòu)的決定。
Hastings和其他人認(rèn)為PCOE類似于美國(guó)最高法院-這個(gè)機(jī)構(gòu)只有在存在無法以任何其他方式解決的爭(zhēng)議時(shí)才作出決定。但是?ukaszLanga想知道為什么有三個(gè)成員如此受歡迎:
對(duì)于triumvirate我看到了一些問題,比如一個(gè)公司只雇傭了三個(gè)成員中的兩個(gè)就能接管Python的設(shè)計(jì)過程(持續(xù)地對(duì)第三個(gè)成員進(jìn)行投票)。如果其中一名成員棄權(quán),也有很大的可能產(chǎn)生關(guān)聯(lián)等等。
“憲法”
他還擔(dān)心如何確定設(shè)計(jì)管理員的角色:“Python需要一個(gè)‘憲法’,它將編纂委員會(huì)的內(nèi)容及其運(yùn)作方式”。許多人將該文檔稱為“PEP 2”,但在這種情況下如何接受該文檔完全是未知數(shù)。Langa提出了一個(gè)可能不被Van Rossum接受的建議:“理想的情況是Guido會(huì)接受PEP,但我不確定他是否愿意接受。”如果確實(shí)如此,那么該如何做才能使該文件得到所有提交者的普遍接受呢?
很明顯的,許多人都認(rèn)同這種觀點(diǎn),幾乎所有人都希望Van Rossum仍將擔(dān)任一個(gè)積極的角色——也許甚至是作為一些PEPs上的“仁慈大君”。Carol Willing可能總結(jié)了許多關(guān)于Van Rossum參與的觀點(diǎn):“我大多希望Guido做任何撼動(dòng)他的世界的事情”。如果Van Rossum愿意,Cannon有一個(gè)具體的想法:“在我的理想情景中,人們寫PEPs提出治理模型,Guido選擇一個(gè),使其成為PEP 2。”
在這方面,Van Rossum確實(shí)短暫地插入了這個(gè)話題,試圖闡明他在決定治理方面的角色:“我仍然在這里,但我希望退出辯論,退出決策圈。我還是PSF(Python軟件基金會(huì))的董事長(zhǎng)。但這不是由PSF決定的。你們都做得很好了。”
因此,某種類型的“神圣干涉”很可能并不存在。核心開發(fā)人員需要自己解決這個(gè)問題。他表示,在確定治理模式時(shí),有兩種指導(dǎo)原則:“如果發(fā)展的內(nèi)容包含Python之禪 (Zen of Python,PEP 20)和‘我為語言而來,為社區(qū)而留下’,我相信這種語言將從技術(shù)上受益。”實(shí)際上,Python社區(qū)是一個(gè)強(qiáng)大的社區(qū),這證明了Van Rossum在過去28年里的領(lǐng)導(dǎo)能力。
作為制定治理計(jì)劃過程的一部分,Nathaniel Smith正在組織一個(gè)信息化的PEP來調(diào)查其他開源項(xiàng)目的治理。我們的想法是看看是否有可用于Python的部件和零件。另一些努力甚至早于Van Rossum的辭職,就是找出一種更好的方式來討論P(yáng)EP,并試圖達(dá)成共識(shí)。Hettinger提議了一種可能性:
對(duì)于更大的決策(并沒有很多),我對(duì)如何改進(jìn)討論有一些建議,以便有關(guān)各方能夠在結(jié)果中擁有更平等的發(fā)言權(quán),從而使討論更具時(shí)間效率。
基本上,這個(gè)想法是讓所有參與者都可以編輯wiki/faq。它將包括關(guān)鍵的例子、贊成和反對(duì)的論據(jù),以及可以收集到當(dāng)前對(duì)話的rebuttal。這與當(dāng)前的PEP過程有些不同,因?yàn)槟壳笆荘EP作者主導(dǎo)了對(duì)話,而其他人很容易被淹沒。(這一想法模仿了加州立法分析師選民指南,該指南總結(jié)了各項(xiàng)提案,并有支持者和反對(duì)者的陳述和反駁)。
Neil Schemenauer用經(jīng)濟(jì)學(xué)術(shù)語來表述:
也許這可以被視為一種經(jīng)濟(jì)問題。發(fā)布到PEP討論thread的成本與閱讀該帖子的每個(gè)人的成本是分別多少?或者,評(píng)論的價(jià)值是什么,每個(gè)人閱讀它的代價(jià)是什么?
使用目前的討論方式,成本往往不成比例。有成百上千的人在閱讀帖子,所以成本很高。而發(fā)表一個(gè)不成熟的評(píng)論太容易了。用新的主題線開一個(gè)新的thread太容易了。
他建議,一旦他們?cè)趐ython-ideas郵件列表中的“free-wheeling wild west”上完成了運(yùn)行,就應(yīng)該單獨(dú)列出一個(gè)郵件列表,以便進(jìn)行PEP discussion。PEP-discussion列表中有一些基本規(guī)則,目的是最大限度地利用每個(gè)人的時(shí)間。充分投入的參與者與Python用戶或開發(fā)人員之間的不成比例的成本可能是導(dǎo)致Van Rossum由于倦怠而辭職的主要原因。
顯然,事件塵埃落定和制定具體計(jì)劃需要一段時(shí)間,但人們會(huì)覺得Python社區(qū)已做好準(zhǔn)備——即使不是完全愿意——追求自治(self-governance)。不過,這一過程將在公開場(chǎng)合發(fā)揮作用,這可能會(huì)對(duì)其他經(jīng)歷類似甚至不同的過渡的項(xiàng)目有所幫助。在開源的世界中,項(xiàng)目可以從技術(shù)的角度互相學(xué)習(xí),當(dāng)然也治理和社區(qū)等領(lǐng)域相互學(xué)習(xí)。
我們每個(gè)人都應(yīng)該(與其他人一起)感謝Guido,否則就是不負(fù)責(zé)任的表現(xiàn)。我們的網(wǎng)站依賴于Python,并且已經(jīng)運(yùn)行了16年或甚至更久。 Van Rossum 用他的努力為世界做出了偉大的貢獻(xiàn)——即使在這一切都已過去之后,他的努力似乎也不太可能改變。在許多方面,Python社區(qū)是它的“仁慈大君”的反映;它令人愉快的基調(diào)和對(duì)每個(gè)人的友好是其他項(xiàng)目應(yīng)該效仿的。
-
源代碼
+關(guān)注
關(guān)注
96文章
2946瀏覽量
66831 -
python
+關(guān)注
關(guān)注
56文章
4801瀏覽量
84861
原文標(biāo)題:Guido 轉(zhuǎn)身離去,Python 何去何從?
文章出處:【微信號(hào):AI_era,微信公眾號(hào):新智元】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論