作者 | 徐杰承
審校 | 云昭
一直以來,Rust都因其能夠提供極佳的內存安全保護、并發和高效的編程體驗而得到廣大開發者和大量科技企業的青睞。然而作為一款無論在特性還是采用率方面都十分成功的語言,Rust的項目治理卻存在著很多問題。
Rust基金會長期以來的官僚主義行為,使得Rust開源社區中的用戶怨聲載道,而不久前發生的“商標鬧劇”更是使將Rust的內亂推向了高潮。最終,部分無法忍受Rust基金會強權的社區成員對Rust進行了分叉并創建了CrabLang社區。
1、離譜草案引發的fork
其實就背景而言,Rust基金會與開源社區之間的關系本就如履薄冰。而在今年4月,Rust基金會就正在更新的商標政策在社區征求反饋意見。在新版草案中,Rust基金會希望禁止在與Rust相關工具或用Rust編寫的軟件名稱中使用“Rust”,甚至在域名或子域名部分也有針對性限制。
這意味著若草案政策成立,將迫使許多基于Rust的開源項目為了合規而不得不更改名稱。對此,大量感到不滿的Rust社區成員向基金會提出了抗議,甚至有人直言,“希望基金會盡快放棄這項政策,否則將嚴重影響Rust語言的發展”。
雖然在社區的壓力之下,Rust基金會最終發表了新的聲明,并在更改商標政策草案的同時關閉了草案的反饋表單,試圖平息這一爭議事件。但經此一役,部分對Rust基金會徹底失望的用戶還是選擇將Rust進行了fork并成立了CrabLang社區分支。
2、CrabLang:新的烏托邦
在CrabLang的官方介紹中,他們表示社區分支的創建是對于企業和基金會提出的限制性商標政策而做出的回應。而Rust基金會的新草案正是引發社區fork的原因,CrabLang希望能夠通過一種更好的方式解決這個問題。
CrabLang的目的并不是取代Rust,如果用戶和社區成員對于Rust的現狀滿意,CrabLang會鼓勵用戶繼續使用Rust語言。CrabLang并不希望分裂社區,而是希望能夠幫助為Rust感到擔憂的人提供一種新的選擇,保障他們在使用、創造和推廣語言方便有更多自由。
CarbLang強調稱,其與Rust并非對立。fork的主要分支將繼續與Rust代碼庫保持同步。fork的主要目標是確保社區擁有一個與成員價值觀和開源愿景相同的替代方案,讓社區可以在不被任何利益因素所干擾的情況下茁壯成長。
CarbLang的發展源于社區成員對這門語言的熱愛,他們會盡可能保證成員與用戶在使用它的同時保留創建內容、推廣名稱或商標以及其他資產的能力,通過提供社區的驅動替代方案,CrabLang希望保持協作、創新和自由精神。CarbLang擁有Rust全部的內存安全功能,但不會有充滿官僚主義的作風。
3、Rust基金會作死不斷
然而對于CarbLang社區的一系列動作,Rust基金會卻顯得十分不屑。在一次公開采訪中,Rust核心團隊成員、Rust基金會原執行董事及創始人 Ashley Williams表示,fork更像是談判策略,她認為社區之中沒有人是語言專家。在這種情況下,沒有人會在意這個組織,他們只能作出些滑稽的動作。
但很快,由Rust基金會主導的另一場鬧劇就狠狠打了這位趾高氣昂的領導者的臉。就在上周,RustConf2023的組織者找到即將于會上進行主題演講的JeanHeyd Meneide,讓他接受從“主題演講”降級為“常規演講”。而其中的原因是由于Rust基金會領導組的部分成員對JeanHeyd的膚色及演講主題感到不滿。
Rust領導組對JeanHeyd的不尊重引發了Rust社區中的“海嘯”。面對這種強權政策和種族歧視,Rust項目的核心貢獻者JT憤然辭去了Rust的工作并發文表示:基金會羞辱了該領域最重要的專家之一。這種情緒得到了社區強烈的響應,也使得社區中的大量無法忍受基金會行為的成員開始轉向CarbLang。
根據GitHub star history顯示,在四月發布后,CarbLang在短期內獲得了1900+ stars。雖然增長在4月至5月期間開始放緩,但隨著Rust基金會的再度作死,CarbLang的stars數量迎來了新一輪的暴漲,截止目前該項目已擁有3800+ stars,并且這一趨勢仍在延續。
4、Fork會是好的選擇嗎
事實上,在如今的開源社區中有很多知名項目都是forks。例如目前世界上最流行的Linux發行版Ubuntu便是Debian的一個分支;而擁有僅次于Chrmoe用戶群體數量的Mozilla Firefox也是從Mozilla應用程序套件中fork出來的,各種成功的案例比比皆是,但同樣也有許多項目最終失敗。
總而言之,fork開源項目有它的兩面性。新的項目要么會在成員的支持下產生更多新的產品,并建立自己的生態系統;要么則可能會隨著主項目的繼續繁榮而逐漸走向衰落并最終慢慢消失。
然而CarbLang的分叉并不是為了取代或是重新創造Rust,用他們自己的話說,“我們并不反對這個項目的原始語言Rust,我們的主要目的是建立一個與開發者價值觀相同的社區,讓不滿于Rust現狀的人們能夠擁有更多選擇的權利?!?/p>
CarbLang的目標不同于以往絕大部分的fork項目,而對于其能否最終取得成功,開發者和社區成員的選擇與態度決定著一切。無論最后Rust和CarbLang會走向哪里,這件事都證明了一個事實,即使是開源基金會,所謂的民主和開放治理也可能會存在問題,但開源精神始終在推動著一次又一次的創新。
參考鏈接:
https://github.com/crablang/crab
https://analyticsindiamag.com/internal-drama-unveiled-a-behind-the-scenes-look-at-rust/
https://www.jntrnr.com/why-i-left-rust/
https://crablang.org/
https://twitter.com/crablang