51CTO讀者成長計(jì)劃社群招募,咨詢小助手(微信號(hào):CTOjishuzhan)
編譯 | 王瑞平、言征
Rust內(nèi)部人員之間的斗爭(zhēng)從未停止。
最近,Jntrnr辭去了Rust的工作,他曾于2021年加入Rust Core team。關(guān)于發(fā)生此事的原因,大家有很多揣測(cè),因此,他在博客上發(fā)布了文章,特意澄清了真實(shí)的原因。
與此同時(shí),他還在Twitter上就此事做出了簡(jiǎn)要的說明:“我已辭去Rust中的所有職務(wù),立即生效。很多人問我這個(gè)問題,所以我寫了一篇聲明,說明我為什么辭去Rust的工作?!?/p>
一、究竟發(fā)生了什么?我為什么離開?
先從我的視角向大家匯報(bào)一下事情的來龍去脈:
1.我們向臨時(shí)領(lǐng)導(dǎo)小組發(fā)出了邀請(qǐng),希望他們能成為Rust會(huì)議的主講人;
2.吉恩·海迪是我和Manish提議的主講嘉賓,是C語言的自身程序員,C++專家,也是一位優(yōu)秀的演講者。我們認(rèn)為他會(huì)是一位出色的受邀專家,擁有局外人的視角;
3.幾天后,我們舉行了一次投票,吉恩·海迪被選為主講人之一;
4.吉恩·海迪被邀請(qǐng)并接受了主題演講;
5.日程公布之前,我們?cè)谝淮螆F(tuán)隊(duì)會(huì)議上討論了吉恩·海迪被選為主講人之一;
6.一些Rust團(tuán)隊(duì)成員強(qiáng)烈反對(duì)吉恩·海迪被選為主題演講者,因?yàn)樗l(fā)布的關(guān)于Rust的博客文章內(nèi)容。
7.這些反對(duì)的原因被提交給臨時(shí)領(lǐng)導(dǎo)小組并要求立即執(zhí)行。而大家并沒有討論做出改變的后果。有人抱怨說,這種阻力不足以要求更改主講人,但這種反饋被忽略了。討論的重點(diǎn)是把吉恩·海迪從主題演講人的位置上換下來。演講從“主題演講”降級(jí)為“常規(guī)演講”。
8.Rust領(lǐng)導(dǎo)層中有一個(gè)人沒有經(jīng)過臨時(shí)領(lǐng)導(dǎo)小組的投票(吉恩·海迪是由Rust領(lǐng)導(dǎo)層投票選出的)而直接聯(lián)系了Rust conf的領(lǐng)導(dǎo)層,要求更改邀請(qǐng)。
9.Rust conf領(lǐng)導(dǎo)層決定等一個(gè)星期后再通知吉恩·海迪,給Rust領(lǐng)導(dǎo)層時(shí)間改變主意,而臨時(shí)領(lǐng)導(dǎo)小組沒有被告知本周的延期。
10.一周過后,吉恩·海迪被告知決定,完全拒絕他在Rust會(huì)議上的發(fā)言。
11.當(dāng)我讀到吉恩·海迪的博客文章并得知邀請(qǐng)被拒絕時(shí),我立即辭去了Rust項(xiàng)目的工作。
以上是我能夠給出的最清晰的前因后果。我們需要進(jìn)行全面調(diào)查以揭示上述情況發(fā)生的方式和原因。如果有新的信息出現(xiàn),我也會(huì)保留編輯上述內(nèi)容的權(quán)利。
通過以上事實(shí)的陳述,我離開的原因顯而易見,親眼目睹Rust組織羞辱了吉恩·海迪。當(dāng)我感受到吉恩·海迪因受到虐待和背叛而感到痛苦和失望時(shí),我的心都碎了。
二、RustConf 撤銷會(huì)議主講人
5月26日,吉恩·海迪發(fā)表聲明文章稱,自己將不會(huì)在RustConf 2023會(huì)議上發(fā)言。RustConf 2023的組織者此前聯(lián)系到他,讓他接受從“主題演講”降級(jí)為“常規(guī)演講”。最初,他認(rèn)為這是由于正常的日程安排或者是找到更合適的人選。
但事實(shí)并非如此。真實(shí)的原因是,Rust 領(lǐng)導(dǎo)小組部分成員對(duì)他的演講主題表示不滿,他對(duì)此感到不解。RustConf的主題演講通常涵蓋與Rust項(xiàng)目的目標(biāo)和需求相近和相距甚遠(yuǎn)的主題。主題演講從來沒有對(duì)Rust項(xiàng)目的目標(biāo)方向有確切的指示。
“他們沒有事先聯(lián)系我,只是問我是否愿意放棄我的工作,以明確表示他們沒有明確認(rèn)可這個(gè)方向,這對(duì)我來說是一種侮辱,”吉恩·海迪在聲明中表示。
三、決策帶有偏見,會(huì)議不該缺少有色人種出席
我感受到了決策方背景的重要性。吉恩·海迪不僅是近期Rust基金會(huì)的資助獲得者,也在長期為Rust項(xiàng)目做貢獻(xiàn)。
他曾大力呼吁Rust的技術(shù)會(huì)議應(yīng)該引入黑人代表。這是完全正確的,因?yàn)镽ust組織和會(huì)議中幾乎真的沒有黑人代表出現(xiàn)。
當(dāng)我目睹一個(gè)組織不僅可以對(duì)此類專家如此冷漠,而且對(duì)一名能夠直言不諱地批評(píng) Rust缺乏多樣性的專家如此冷漠時(shí),很難不認(rèn)為是由其它原因?qū)е隆?/p>
而我感受的不只是會(huì)議的組織者對(duì)于領(lǐng)域?qū)<业睦淠?,更是由于他直言不諱地批評(píng)Rust缺乏多樣性才招致今天不受尊重的結(jié)局。
制度是有記憶的,也是有偏見的。如果制度內(nèi)的每一分子不努力與之斗爭(zhēng),這些記憶和偏見就將長期存在。我的好友Aman說得很對(duì),RustConf不該缺少有色人種的出席。
四、根源在于Rust領(lǐng)導(dǎo)者不愿交權(quán)
我反對(duì)做出此種決策的人,他們顯然不習(xí)慣尊重他人,將演講嘉賓發(fā)表的主題演講降級(jí)是非常不尊重的。我也四處打聽,看是否有人經(jīng)歷過類似的情況,甚至聽說過此類情況。
根本原因可能在于RustConf的領(lǐng)導(dǎo)者不愿交出自己手里的權(quán)力。他們不愿意交權(quán),也許是因?yàn)檫@份權(quán)力允許他們依照個(gè)人喜好撤消會(huì)議主講人。
五、是時(shí)候問責(zé)了
我回顧了我是如何處理此類事件的,我本可以做得更好。
我的首選方案是通過外交的方式解決,嘗試搭建橋梁、獲取信息并尋求妥協(xié)。但是,在閱讀了發(fā)生的相關(guān)事件和回顧了我的行為之后,很明顯,問題的一部分是由領(lǐng)導(dǎo)層的外交手段過多導(dǎo)致。
太多的人互相懷疑,太多的人要求答案,對(duì)錯(cuò)誤的決定聽之任之。因此,我要為解決這些失敗的決策盡自己的力量。
我們需要的不是外交,而是需要人們對(duì)發(fā)生的事情負(fù)責(zé)并做出補(bǔ)償。我們需要濫用領(lǐng)導(dǎo)層的決策者退出,需要一個(gè)不殘忍行事的組織替代。這樣,它創(chuàng)建的項(xiàng)目和背后的組織才能重建失去的信任。
六、需要Rust方做出回應(yīng)
總之,Rust的相關(guān)組織需要被追究責(zé)任,我認(rèn)為,以下是需要做出的回應(yīng):
1.沒有領(lǐng)導(dǎo)投票不可以私自做出決定?
2.為什么降級(jí)演講是解決的唯一途徑?
3.為什么RustConf領(lǐng)導(dǎo)層同意這個(gè)決定而不保護(hù)演講者?
4.為什么Rust領(lǐng)導(dǎo)層沒有被告知更改決定的時(shí)間段?
5.誰要為將團(tuán)隊(duì)的不適變成對(duì)專家的恥辱負(fù)責(zé)?我們將如何追究他們的責(zé)任?
6.我們?nèi)绾尾扇”Wo(hù)措施,以免再次發(fā)生這種情況?
7.目前,Rust如何被追責(zé)并且能夠保持長期的責(zé)任感?
七、涉事專家對(duì)此事的回應(yīng)
涉及的相關(guān)專家全名是吉恩·海迪(JeanHeyd·Meneide),是一名軟件工程師,也是C語言的程序員。他擅長人體工程學(xué)庫設(shè)計(jì)、性能調(diào)優(yōu)、外部函數(shù)/語言接口以及圖形編程。
吉恩·海迪曾公開發(fā)表說:“我最喜歡的工作是編程,即使是年輕的程序員也能寫出高質(zhì)量的代碼,讓他們走向成功。偶爾,我會(huì)陷入網(wǎng)絡(luò)編程循環(huán)之中?!?/p>
對(duì)于此事,他也公開了自己的回應(yīng):“經(jīng)過一整天的反復(fù)討論,一些非常重要的細(xì)節(jié)已經(jīng)浮出水面,我將在這里總結(jié)一下?!?/p>
回應(yīng)中提到:“來自Rust項(xiàng)目?jī)?nèi)部的某個(gè)人,在沒有獲得領(lǐng)導(dǎo)層一致同意的情況下,試圖貶低我的演講(或者干脆撤回演講)。因?yàn)樗麄儾幌矚g我正在做的編程工作?!?/p>
“當(dāng)我知道我要講Rust中的編譯反射時(shí),那個(gè)人決定降級(jí)我的演講,并在上周五之前的4-8天做出決定,而我實(shí)際上是在上周五才被告知這一消息的,我不得不放棄發(fā)表這篇博文。原來的和現(xiàn)有的Rust項(xiàng)目成員中的許多人直到看到我的帖子才知道單方面降級(jí)的決定。總而言之,這讓人覺得有些人試圖繞過Rust項(xiàng)目曾達(dá)成的共識(shí),因?yàn)樗麄儾幌矚g此類工作。”
“我不知道該如何處理這件事。Rust項(xiàng)目對(duì)此事?lián)碛凶罱K決定權(quán),并且我們的工作涉及的所有項(xiàng)目都在組織的控制之下。即使我們做了這些工作,他們也有權(quán)解除和撤銷或者用無窮無盡的‘合理關(guān)注’無限期阻止我們的工作。這些項(xiàng)目成員似乎有問題,但除了對(duì)我們現(xiàn)在已經(jīng)結(jié)束的RustConf的相關(guān)工作現(xiàn)狀進(jìn)行批評(píng)外,他們不想與我們做出額外的溝通。”
八、為Rust做出的工作
吉恩·海迪在澄清的博文中提到,他曾針對(duì)Rust做出過大量工作,主要針對(duì)Rust的鏡像配置,并將這些工作公開發(fā)表,部分內(nèi)容如下:
有了強(qiáng)大的trait系統(tǒng)、編程時(shí)的常量以及針對(duì)類型和常量的where-and-:風(fēng)格邊界,Rust對(duì)泛型函數(shù)的處理已經(jīng)徹底擺脫C++那種隨心所動(dòng)、狂野的以及只在調(diào)用時(shí)出錯(cuò)的模板系統(tǒng)。
此外,它強(qiáng)大的宏系統(tǒng)已成為C語言的重要替代品,允許用戶在編譯時(shí)通過一致和可靠的方式生成實(shí)際的代碼,以及處理最重要的語言擴(kuò)展任務(wù)。
與C語言非常相似,Rust過于依賴宏系統(tǒng)和代碼生成技術(shù),這雖然避免了自然語言處理中產(chǎn)生的缺陷,在不恰當(dāng)編譯處通過預(yù)先加載工作彌補(bǔ)語言和數(shù)據(jù)庫特征的不足,但卻因此產(chǎn)生了更長的編譯時(shí)間。
“為此,我們已經(jīng)開始對(duì)一組核心語言原語句進(jìn)行規(guī)范、形式化和潛在的集成并以bikeshed命名introwoinspection?!彼谖恼轮锌偨Y(jié)說。
參考資料:
https://www.jntrnr.com/why-i-left-rust/
https://soasis.org/posts/a-mirror-for-rust-a-plan-for-generic-compile-time-introspection-in-rust/
https://pony.social/@thephd/110446817486174177