Rust 社区求变,PHP 大旗不倒?
文?| 一君
出品 | OSC開源社區(ID:oschina2013)
上月底發生了兩件開源語言相關的大事。
一是 JetBrains 牽頭成立 PHP 基金會,希望能確保語言的長壽和繁榮。二是 Rust 審核團隊集體辭職,理由是 Rust 核心團隊造成了“寡頭政治”。
近年來,由于各個大廠的押注,Rust 風頭正盛,但是由于其過高的學習成本、替換工程巨大等等原因,實際上是叫好不叫座。再加之最近社區陷入混亂,不免讓人懷疑 Rust 是否真有其背后的“金主爸爸”們說的那么好?反觀 PHP,雖然常常被唱衰,但使用率基本穩定在前十,而且隨著新版本的發布、基金會的成立,反倒是一派欣欣向榮之象。
而單從社區治理的角度來看,兩個語言社區的風格與發展也是截然不同。本文分成上下 2 篇,分別聊聊 Rust 和 PHP 的社區發展。
Rust 救急
2006 年,編程語言界正是各個語言割據爭霸的時候,也有許多工程師抱著“自己寫一個編程語言”的夢想進入戰場。Rust 之父 Graydon Hoare 正是其中一位。
Graydon Hoare 作為職業編程語言工程師,工作日常是給其他語言開發編譯器和工具集,參與過 GCC、Clang、Swift、Tracemonkey 等許多編譯器項目,但他并沒有參與這些語言的設計工作。
這樣的境遇讓他萌生出開發一個屬于自己的語言的想法。Graydon Hoare 認為,那些為開發者所熟知的語言的優點并不能使其成為一門應用廣泛的系統語言,而且部署在語言中的內存模型也不夠安全且非并發。在他看來,環境已經發生變化,互聯網高度關注安全性和并發性,所以那些青睞于 C 和 C++ 的設計方式也應該不斷發生改變。
他想做出一個能兼顧安全的、好用的語言。埋頭三年,最終他在 2009 年向上司展示了自己業余時間的研究成果——Rust。
自然界有種叫做“銹菌(Rust Fungi)”的真菌,寄生在植物中引發病害,被稱為“本世紀最可怕的生態病害”之一。銹菌的生命力非常頑強,生命周期內可以產生 5 種孢子類型,而且還能互相轉化。Rust 語言 logo 上的 5 個小圓圈便是對應 5 種孢子,指代 Rust 語言“魯棒性超強”。此外,“Rust”在字形組合上也糅合了“Trust”和“Robust”,暗示了“信任”與“魯棒性”。
Mozilla 對 Graydon Hoare 的工作成果非常感興趣,對 Rust 寄予厚望,希望它能比 C++ 提供更好的并發性,安全性和易用性,甚至將其作為瀏覽器堆棧重構長期項目的一部分。2010 年左右,Mozilla 的研發團隊在 Firefox 的開發過程中遇到了瓶頸。Firefox 底層實現主要用 C++ 編寫,盡管團隊擁有最佳的實踐經驗和豐富的工程技術人才,但是在編寫瀏覽器內核這樣擁有如此復雜的高性能、并行化和內存安全要求的代碼時,仍然很容易出錯。據統計,Firefox 中有超過 70% 的漏洞與內存安全有關。而 Rust 恰恰可以彌補這一漏洞。
雖然 Mozilla 看重 Rust 在技術上的種種優勢,組建專門團隊繼續開發,但這并不代表他們對于開源語言社區的治理有足夠經驗。
據之前 Rust 核心團隊成員、Mozilla Research 的資深研究工程師 Brian Anderson 透露,他曾從事 Rust 編程語言方面的工作 6 年。在 Rust 團隊時,無論如何, Rust 總是人手不足,“我記得當時對此很生氣:我們如何在如此少的全職工程師的情況下與 Google 和 Apple 競爭?”
解決問題有兩個路徑,一是培養多元化的貢獻者社區,但用 Brian Anderson 的話來說,“這是一個緩慢且不確定的過程”。
另一個方式則是靠實習生。當時 Mozilla 內部負責 Rust 開發工作的核心人物還有戴夫·赫爾曼,他是一名編程語言理論學者,也是一名宏專家,更是公司內部職位最高的 Rust 信徒。他曾為 Rust 團隊向公司申請資源和人員,同時還憑借自己在學術界的聲望為 Rust 團隊招到了許多實習生開發者。
Brian Anderson 回憶道:“一個值得贊賞的事實:Rust 主要由學生創建,其中許多人在 Mozilla 實習。”
(Rust 社區活動,來源:https://www.rust-lang.org/zh-CN/community)
然而,實習生組成的團隊雖然解決人手短缺的問題,但隨著實習期結束,團隊換血會更加頻繁。
并且,在這一階段,Rust 的核心成員幾乎都來自 Mozilla 內部,這似乎也奠定了 Rust 團隊“寡頭政治”的雛形。
Mozilla 斷臂
Rust 在 Mozilla 的滋養下成長了 11 年。直到 2020 年 8 月 11 日,Mozilla 宣布將決定重組公司,并裁員約 250 人,其中就包括 Rust 項目和 Rust 社區的活躍成員。
Rust Core 團隊隨后公開表示“Rust 項目沒有危險”,緊接著又發博客詳細說明,博客中承認了裁員風波對 Rust 是有影響的,“可以理解的是,這些裁員對 Rust 項目本身的影響產生了很多不確定性和混亂。”
Rust Core 團隊提到幾點重要信息。一是 Rust 有來自不同背景和雇主的領導者和貢獻者,這種多樣性是一種重要的力量。而且 Rust 團隊的成員資格是授予個人的,并且與雇主無關,所以即便是被裁掉的員工,也依然有 Rust 團隊的成員資格。
二是一個普遍的誤解——所有參加 Rust 領導的 Mozilla 員工都把這個當做了他們工作的一部分。實際上,Rust 領導層中的許多 Mozilla 員工都是在個人時間內為 Rust 做出貢獻的,而不是做為工作的一部分。
但是 Rust Core 團隊也提到,有些人可能會選擇減少他們的參與“我們了解并非所有人都能繼續做出貢獻,我們將完全支持他們的決定。”
為什么 Mozilla 會選擇裁掉部分 Rust 團隊員工?或許從 Mozilla 的轉型方向中可窺見一斑。
在名為《改變世界,改變 Mozilla》的公開信中,Mitchell 透露,公司在 2020 年之前已經做了很多規劃,包括對新產品的投資,但 COVID-19 的全球大流行完全影響了他們的經濟狀況,這些計劃不再可行,裁員也因此變得更加必要。
與此同時,在 Mitchell 看來,Mozilla 的組織結構在過去很長一段時間以來都不是很恰當,為了“創造新的產品,創建更好的互聯網”,組織需要進行大的重組,以確保財務狀況的長期穩定。
除了對產品,對技術和對社區的更多關注外,Mozilla 現在也強調 “focus on economics”。公開信指出,“一切都是免費的”這種舊模式會帶來不好的后果,應嘗試探索不同的商業機會,做價值交換。“提倡為公共利益創造經濟價值的模式”也正是?Mozilla 宣言里的一部分。
Rust 作為 Mozilla 免費向外界提供的開源語言,很難從實際上給 Mozilla 帶來可觀的經濟收益。Mozilla 接下來的動作便是似乎希望 Rust 至少能通過社區自給自足。
自省與求變
在 Mozilla 裁員的催化之下,Rust Core 團隊做了兩件事情。
一是 2020 年 8 月 18 日,Rust?Core 團隊宣布計劃和 Mozilla?創建一個 Rust 基金會,并稱從 2019 年其實就已經開始調研有關 Rust 基金會的想法了。
緊急成立基金會當然還是為解決燃眉之急:“隨著項目規模、采用率和成熟度的增長,我們開始感受到成功的痛苦。我們已經制定了法律和財政需求,而我們目前的組織缺乏能力來滿足這些需求。雖然我們在 Mozilla 的幫助下成功了很長一段時間,但我們已經到了一個很難在沒有合法名稱、地址和銀行賬戶的情況下運營的地步。‘Rust 項目是怎么簽約的?’已經成為我們不能再拖延的問題了。”
前期基金會的搭建工作是由 Rust Core 團隊挑選出成員組成一個項目組,推動成立基金會的工作。
籌集近一年后,2021 年 9 月,Rust Core 團隊宣布由華為、Microsoft、Google、AWS 和 Mozilla 作為創始成員的 Rust 基金會(Rust Foundation)正式成立,并將于美國東部時間 2 月 9 日下午 4 點舉行第一次董事會會議。基金會成立之后,與 Rust、Cargo 和 crates.io 相關的各種商標和域名都將轉移到基金會中,基金會也將為它們所產生的費用承擔財務責任。
盡管 Rust Core 團隊還表示他們不會過分依賴單一贊助商,但基金會的成立反倒也引起了社區對于“大企業壟斷”的擔憂。此前在 Rust 社區有人推測:AWS 在試圖“接管” Rust,具體表現在作為 Rust 基金會創始成員的 AWS 雇傭了多名 Rust 維護者和貢獻者。
但換句話說,Rust 適用場景天生就是對安全性需求高,而且完成 Rust 對 C 語言構建系統的替換并非易事,這便使得其用戶群本就集中在大企業。Rust 和大企業英雄惜英雄的情況下,走得近些也就很自然了。
另外,Core Team 自身也在今年 9 月做了一輪小范圍內的換血。? ? ?
Core Team 發布了一篇博客,坦誠在 Rust 項目的早期,核心團隊的組成幾乎完全由 Mozilla 員工組成,全職在 Rust 上工作。
隨著 Rust 的發展,以前在 Mozilla 工作的人離開了新工作,新人出現了。許多新人并沒有全職從事 Rust 工作,因此集體時間投入減少。目前,Core Team主要由志愿者組成,沒有 Core Team 成員全職從事 Core 團隊的工作。?
迄今為止,Core Team 本身的運作方式仍然是個大謎團。無論是在 Rust 的官網,還是在基金會,Core Team 的介紹只有短短幾行權利描述,成員如何選拔、責任如何等等都看不到。當然,其他團隊的介紹也同樣簡單。
就連 9 月的 Core Team 換血,也是未經公開決策的直接任命:“今天宣布對 Core 團隊的成員進行一些更改:Ryan Levick、Jan-Erik Rediger 和 JT 將加入 Core 團隊。”
然而,開發者對于近期 Rust 社區的改變并不買賬。一位在 Rust 社區呆了 6 年的開發者發文痛斥 Core Team:
Core Team 成員種種拒不配合、粗暴打壓的態度,證明他們完全是把 Rust 當成了自己的專屬品、甚至是豢養的“寵物”。
這是個完全自利的團體,只會堅定維持自己的派系、實施自己的目標,頭腦中壓根沒有組織利益或者合作之類的概念。
我個人希望 Core Team 的成員們辭職,并徹底解散整個 Core Team。
不過,近日 Linux 內核正添加對 Rust 作為第二語言的支持。Linux 內核和 Rust on Linux 的主要開發者 Miguel Ojeda 近日向 Linux Kernel 郵件列表提交了一個新補丁 (v2),進一步推進了 Rust for Linux 的工作進展。Ojeda 透露,繼 Arm、谷歌和微軟之后,紅帽方面也表達了他們對該項目的支持意向。可見,Rust 的實力還是不容小覷,作為語言界近幾年的“新寵”,也期待 Rust 的社區治理也能越來越好。
總結
以上是生活随笔為你收集整理的Rust 社区求变,PHP 大旗不倒?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2021.NET Conf China上
- 下一篇: 2021 .NET 开发者峰会顺利在网上