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

零基礎(chǔ)入門:如何在樹莓派上編寫和運(yùn)行Python程序?

是否可以使用OpenVINO?部署管理器在部署機(jī)器上運(yùn)行Python應(yīng)用程序?
Python Connector for InterBase連接解決方案
使用Python實(shí)現(xiàn)xgboost教程
使用Python進(jìn)行串口通信的案例
ADS124S08如果要實(shí)現(xiàn)四線RTD測量將如何接線?
Python環(huán)境下的代理服務(wù)器搭建與自動化管理
【「倉頡編程快速上手」閱讀體驗(yàn)】簡潔包管理的命脈
使用Python進(jìn)行Ping測試

評論