Meta 發布 2021 年開源回顧:專注 Rust 語言,一年啟動 231 個新項目
InfoQ · 程式 ·

Meta 發布 2021 年開源回顧:專注 Rust 語言,一年啟動 231 個新項目

過去的一年充滿了挑戰和機遇。這一年中我們堅定地追求著

過去的一年充滿了挑戰和機遇。這一年中我們堅定地追求著我們的使命,即通過開源技術賦能多元化社區。我們啟動了許多令人興奮的項目,並收到了來自全球開發人員的貢獻,推動開源生態系統的發展。在這篇文章中,我們想就 Meta 在 2021 年取得的一些成就和貢獻做出感謝並重點介紹一番——如果沒有開源社區的支持,這些成就和貢獻是不可能實現的。


我們將總結一些關鍵指標,並詳細說明我們的基金會和合作夥伴在過去一年中的工作重點。我們將通過 Meta 開源社交媒體渠道來回顧我們的社區參與情況。最後,我們將按技術領域對我們的開源產品組合做分類,例如開發工具和程式語言、數據和基礎設施、移動、Web 和 AI/ML,從而分享我們的產品組合發展狀況的快照視圖。

Meta 開源成就的數字總結


截至 2021 年底,我們有 837 個活躍的公共項目。在扣除已歸檔的非活動項目或捐贈給基金會的項目後,這一年總共啟動了 231 個新項目。


在過去的一年中,我們還看到了對我們公共項目的 165,163 次提交。這個數字比 2020 年增加了近 20%。在這些提交中,有 23,938 次提交是由未​受僱於 Meta 公司的社區成員做出的。Meta 員工做出了剩下的 141,225 次。


我們在 GitHub 上的項目又積累了 133,854 顆星,總數達到 140 萬。社區對 Meta 開源項目表現出越來越濃厚的興趣和熱情。


Meta 開源項目都是由像你們這樣的開發人員所做的貢獻支撐起來的。拉取請求、會議討論、文檔反饋、Facebook 帖子以及其他各種事物,加在一起讓我們的項目變得更加美好,並加強了我們社區中的聯繫。

基金會與合作夥伴


我們相信開源讓開發人員以獨特的方式在一起努力工作,使我們能夠實現共同的目標。我們的使命是通過開源技術賦能多元化社區,我們一直在尋找機會參與能夠推進這一使命的基金會和合作夥伴關係。


2021 年初,我們宣布以最高成員級別的身份支持 Rust 基金會,以維持和發展 Rust 開源生態系統和社區。作為基金會的一部分,我們與其他成員合作發布了用於 Rust 語言開發的一系列雲計算資源。我們的支持讓這一項目持續前進,同時減少了構建和測試語言更改和更新所花費的時間。


我們還領導資助了開放Web文檔。我們加入了他們的管理和指導委員會,通過維護良好的 Web 文檔來塑造項目並帶來社會和經濟效益。在我們的贊助幫助下,他們得以招聘全職的開放 Web 文檔技術寫作人員;我們的支持也讓 web 平台文檔的未來更加清晰,在 WebXR 上增加了 131 個新頁面。


除了這些新的合作夥伴關係,我們也在繼續與之前合作的基金會攜手共進。作為 Presto基金會的成員(這是我們捐贈給 Linux 基金會的一個項目),我們幫助組織了 PrestoCon 專屬日活動,這是將 Presto 社區聚集在一起的一項突出成果。活動結束後,基金會在其 YouTube頻道上分享了會談錄音。


作為 Linux 基金會的活躍成員,我們參與的夥伴關係遠不止於 Presto。2021 年,Meta 是內核目錄的最大貢獻者,Meta 開發人員提交了所有更改的 17.6%。我們還將我們的一個名為Ent的開源項目(Go 的一個實體框架)轉移到 Linux 基金會下,以幫助其開發工作,並培養使用它的開發人員和公司社區。


2021 年初,我們還與 Linux 基金會合作,為構建可擴展運營商級網絡的平台 Magma 建立了行業合作關係,以幫助加速無線網絡的部署並提供創新的下一代服務;我們還啟動了 Magma Core基金會,其擁有超過 20 名成員。2021 年晚些時候,我們與幾家公司合作啟動了 eBPF基金會,以幫助重新定義網絡連接、安全性、跟蹤和可觀察性。

社區


開源是被社區定義的。我們希望我們的每個項目都能發展出自己的社區,同時成為歡迎所有人加入的空間。我們以前所未有的豐富途徑來分享了我們的開發者計劃。


2021 年,我們繼續與 Major League Hacking 在 MLH 獎學金計劃上合作,該計劃旨在託管、指導和支持開發者在開源項目上測試黑客攻擊手段。我們相信,投資開源是一種賦能開發人員並使社區更加多樣化的方式。為了凸顯和分享 MLH 研究員的成功故事,我們發布了一個貢獻者故事博客系列。我們將繼續在開源博客上分享其他具有類似內容的帖子,希望這能鼓勵人們為開源做出貢獻,並成為我們不斷發展的社區的一部分。


儘管 2021 年的大多數會議和活動都是以虛擬形式舉辦的,但我們不想錯過與社區對話的機會。我們做了幾次演講,鼓勵所有人使用開源、為開源做出貢獻,並共同努力幫助所有人更輕鬆地構建偉大的產品。我們介紹了很多故事,諸如「五個項目的故事:對Facebook開源背後動機的反思」「React Native上手:從零到大師」等等。


這一年結束時,我們重新推出了播客「the Diff」,添加了一個影片組件以吸引更多觀眾。在最新一集中,我們採訪了 Meta 開源項目工程經理 Paul O'Shannessy,探討了大規模啟動和管理開源項目的主題。


我們還參加了與 Major League Hacking(MLH)研究員和F8 Refresh Hackathon合作的問答環節。我們分享了很多最佳實踐並討論了一些與踏上開源旅程相關的細節。我們還繼續製作了 ELI5(5 歲孩子也能聽懂)系列,讓社區以易於理解和使用的方式訪問一整套主題。


為了繼續現代化我們與社區分享項目的方式,我們於 2021 年 6 月推出了一個新網站,該網站由Docusaurus、React和Jest等元開源項目構建。


我們希望這能引導當前和未來的社區成員踏上激動人心的旅程。

Meta 開源產品組合一覽


在介紹了有關 Meta 開源、我們的外部合作關係和社區參與的一些指標之後,我們想重點介紹一下我們開源產品組合的各個部分。本節將介紹我們在開發工具、程式語言、數據/基礎設施、AR/VR、移動/Web 和 AI/ML 等不同領域的開源貢獻。

開發工具


在 Meta,我們希望讓工程師變得更有效率和生產力。達成這一目標的一種手段是開發人員生產力工具,我們很樂意與開發人員公開分享這些工具。


最近,我們展望了我們的旗艦構建產品 Buck 的未來。這是一個開源系統,可以使用超過 15 種語言,針對從行動裝置到 Web 服務再到 VR 耳機的不同平台做構建。Buck 的下一個版本正在從頭開始重構,在其整個技術棧中使用 Rust 來提供非常高的性能並加入擴展能力。下一版 Buck 的多個組件已經開源,其中包括Rust-Starlark和Gazebo,我們預計 2022 年將有更多組件開源。


我們發布了開源文檔基礎設施工具的下一個版本,Docusaurus 2。該工具於 2021 年進入正式測試版階段,即將全面發布。


開發工具的世界廣闊而遼遠。2021 年,我們發布了一個名為 Winterfell 的項目,該項目向所有開發人員提供了密碼計算正確性的證明,讓開發人員不再需要專業知識和技能來完成這一需求。此後不久,我們開源了一個名為「Below」的工具,它可以「穿越」時間,幫助團隊查看和記錄歷史 Linux 系統數據。


我們相信,對開源項目進行實戰測試的最佳方式是在生產環境中使用它。所以我們使用靜態分析工具Infer,在編譯時捕獲爭用條件和其他性能故障來幫助重構了 Facebook Lite。

程式語言


Meta 沒有一種默認的程式語言。從 Swift 和 Java 等第三方語言,到自主開發的語言 Hack 和 Flow,我們的工程師只會使用最適合他們手頭工作的程式語言。


例如,我們發布了HsThrift,將 Thrift 用於與結構化數據通信的簡單、與語言無關的協議的優勢帶到了 Haskell。我們還在 C++開發的庫Folly中發布了關於異步堆棧跟蹤的一個完整系列,並使用Cinder(Instagram 內部基於 CPython 3.8 開發的以性能為優先的生產版本)幫助 Python 成為一種更高效和高性能的語言。


2021 年,開源團隊將大部分精力集中在了一種語言上:Rust。


Rust 正迅速成為Meta和整個開發社區的最愛。我們甚至組建了一個專門的 Rust 團隊來發展 Meta 內部的 Rust 開發氛圍,鼓勵對 Rust 和基於 Rust 的項目的開源貢獻,並提高對 Rust 社區的參與度。我們推出了兩個系列來展示在 Meta 中使用 Rust 的案例:Meet the Rustaceans分享我們的開發人員在日常工作中使用 Rust 的故事,以及Rust Nibbles,以片段的形式深入探討特定主題或項目。「對Gazebo的探索」是 Rust Nibbles 系列中的第一個案例。

數據和基礎設施


我們有著如此廣泛的服務和龐大的用戶群,所以規模是我們應對的最大挑戰之一。鑑於我們的使命,我們樂意與開源社區分享我們在數據處理和基礎設施方面的創新成果。


2021 年 9 月上旬,我們開源了一個用於 Web 規模服務的緩存引擎,稱為CacheLib。我們與 Twitter、卡內基梅隆大學、英特爾和其他許多合作夥伴密切合作創建的這個項目,旨在幫助工程團隊在眾多用例中構建和擴展高性能服務。我們還發布了一個名為CacheBench的新基準測試,讓團隊可以客觀地評估各種生產負載的緩存性能。


在 Meta,我們正在嘗試解決許多當代組織正在解決的一些問題,包括與時間和數據相關的問題。我們構建並公開了一個開放計算時間設備,它在現代計時基礎設施中發揮著重要作用,使其更加安全、成本更低。


除了這個硬體項目,我們還開源了一個名為Kats的新庫,用於分析時間序列數據。該項目是首創的綜合性 Python 庫,可讓用戶使用很多經典和高級技術探索時間序列。這種類型的數據對於異常檢測、特徵提取和分析至關重要,這些工作是電子商務、醫藥和供應鏈管理等許多行業的基礎部分。

增強現實/虛擬實境


Meta 擴大了在 AR/VR 工作方面的社區影響力。作為該計劃的一部分,我們最近推出了共享空間,這是一組 Oculus 多人遊戲展示示例,展示了虛幻和 Unity 引擎中的基本多人遊戲功能。其中包括 Oculus 社交 API、Oculus 平台身份驗證、Photon Realtime、帶有 Oculus Spatializer 的 Photon Voice 等等。這個 2021 年的 Connect講座解釋了如何使用這些示例為 Quest 構建和發展多人遊戲應用。


在 2021 年 GlobalXR大會上,開發者倡導者 Navyata Bawa 代表 Meta,發表了活動閉幕主題演講「促進 VR 中的包容性」。演講涵蓋了各種主題,包括發展開放和包容的社區、通用設計、Oculus 虛擬實境檢查等。

移動和 Web


我們的一系列應用程式(如 Instagram、Facebook 應用、Oculus 等)共同推動了前端技術的進步,我們很高興與開源社區分享這些技術。


我們開源了Mariana Trench,該工具可讓用戶深入分析 Android 和 Java 應用的安全性。考慮到我們 Meta 的開發人員正在處理的數百萬行代碼,我們需要充分利用自動化來擴展我們的安全測試。我們構建了很多複雜的系統,使我們的安全工程師能夠自動審查代碼並檢測潛在問題,從而擺脫純手工代碼審查流程。我們很高興看到開源社區發現了 Mariana Trench 的價值,這幫助我們的一些工程師贏得了 2021 年 IEEE 計算機協會網絡安全獎。


React Native 正在不斷提高移動開發的水平,無論是在 Meta 還是業內其他地方都是如此。8 月下旬,我們發布了 React Native 的多平台願景,將這一框架引入桌面和虛擬實境平台。團隊分享了將 Messenger for Desktop 等應用擴展到新平台的計劃,這些應用現在可在 Windows 和 macOS 上使用。React Native 還宣布與 Reality Labs 建立了更密切的合作夥伴關係,以將這一框架引入 VR。


React 社區繼續在分享我們在 React 生態系統中的更新,這對於開發和採用新版本的 React 來說非常重要。2021 年初,我們創建了一個公共工作組來幫助開發 React 18,它具有並發支持、自動批處理以減少渲染、用於 Suspense 的服務端渲染等特性。我們還與社區進一步互動,並在ReactConf 2021上分享了社區所做的一些出色工作。我們推出了一個新的 React Docs網站,其設計著重考慮學習體驗,以幫助人們更高效地學習 React。


我們還推出了一個新的 React Labs 影片系列來分享 React 團隊正在進行的研究和開發內容。作為本系列的一部分,我們就 React 伺服器組件和 React 18 的更新進行了幾次問答交流。


為了進一步發展 Web 工具鏈,我們對 Relay 進行了重大改進,這是一個用於在 React 應用程式中獲取和管理 GraphQL 數據的 JavaScript 框架。2021 年 3 月,我們推出了 Relay Hooks,這是一種使用React Hooks構建的新的、對開發人員更友好的 Relay API。Relay 的最新疊代旨在顯著改善開發體驗,具有更好的類型安全性和更大的覆蓋範圍,並避免了像重獲取查詢這樣容易出錯的任務。

人工智慧/機器學習


近年來,開放數據集和基準測試一直是人工智慧取得進展的關鍵驅動力。為了促進全球更多語種的開放和協作研究,Meta AI 發布了用於多語言語音研究的數據集、兩個用於會話AI語義解析的數據集和用於 AI 翻譯的最廣泛的多語言語音語料庫。


去年,Meta AI 研究人員超越了文本,直接在原始、未注釋的音頻信號上訓練 NLP 模型,使 AI 更具包容性並能夠對更廣泛的語言進行建模。Meta AI 還擁有開源的Blender Bot 2.0,它可以記住數周和數月的對話,並在回復人們的問題和評論時生成上下文網際網路搜索查詢。


我們還分享了關於如何教導人工智慧通過我們的眼睛(和視角),而不是旁觀視角來感知世界的新研究成果,以幫助機器人理解觸摸行為;用於訓練家庭助理機器人的模擬器是另一個分享成果。


令人興奮的是,所有這些前沿研究都由流行的開源機器學習庫 PyTorch 提供支持。作為 PyTorch 的最大貢獻者,Meta 正在繼續發展該項目,近 400 名貢獻者在去年推出了兩個新的 PyTorch 版本(1.8、1.9 和 1.10),改進了對分布式訓練、科學計算、邊緣計算和推理性能的支持。


為了與開源受眾互動,PyTorch 團隊舉辦了生態系統日和開發者日,以讓社區成員在線會面、參與機器學習前沿的技術會談、深入研究 ML 項目並討論 PyTorch 的最新與最好用的成果。由 Suraj Subramanian 領導的 PyTorch Developer Advocate 團隊還推出了 PyTorch Community Voices,這是 YouTube 上的每周實時聊天節目。這個新系列重點介紹外部貢獻者,展示了他們基於 PyTorch 的項目,並分享了他們使用 AI 來解決各種問題(包括醫療成像、時間序列的深度學習)和提高開發人員生產力的庫。


我們 Meta 開源團隊相信開源加速了世界創新的步伐。通過與他人分享我們的研究、代碼和設計,我們正在推動行業向前發展,同時幫助其他公司和個人更快地擴展規模並構建出色的產品。


原文連結:https://developers.facebook.com/blog/post/2022/01/24/open-source-2021-year-in-review

聲明:文章觀點僅代表作者本人,PTTZH僅提供信息發布平台存儲空間服務。
喔!快樂的時光竟然這麼快就過⋯
繼續其他精彩內容吧!
more