當?shù)貢r間 7 月 27 日,據(jù) The Register 報道,Meta 宣布將 Hack、Python、C++ 和 Rust 作為員工和開發(fā)人員在其平臺上構建軟件的首選語言。
Meta 向 The Register 表示,在眾多編程語言中,決定使用哪種語言作為首選工作語言并不是件容易事。
Meta 稱,“重要的是,我們采用的每種語言都有最適合的特定應用場景,所以我們會非常嚴格地評估每一種編程語言?!?“一旦做好了選擇哪種語言的決定,我們會將這個決定堅持下去,因此我們希望從一開始就深思熟慮,為我們的工程師提供最好的工具?!?/p>
(資料圖)
在 Meta 公司,一旦做出決定選擇了某種語言,那這種語言就是能在代碼編輯、調(diào)試、構建、核心庫和互操作性方面為內(nèi)部和外部開發(fā)人員提供良好體驗的編程語言。此外,公司還保證稱,使用公司批準的語言編寫代碼的人,將不會被要求將代碼轉(zhuǎn)換為不同的語言。
每種語言都有特定的應用場景
Python 是目前最流行的編程語言之一,也得到了廣泛的認可。Meta 推薦 Python 用于數(shù)據(jù)科學、ML 應用程序和 Instagram 相關代碼。
另一種被廣泛使用的通用編程語言 C++ ,被應用在了 Meta 的后端服務中。
在最受歡迎的四種語言中,Rust 是一種深受喜愛的系統(tǒng)語言,它起源于 Mozilla,現(xiàn)在由 Rust 基金會監(jiān)督。
Rust 也被用于專注于性能的后端服務和 CLI 工具中。“我們的產(chǎn)品和服務中正在更多地使用 Rust,我們致力于長期使用 Rust 并歡迎早期采用者,”該公司說道。
正如所料,Meta 已將自己開發(fā)、開源的 Hack 指定為首選編程語言。Hack 是一種類型安全的 PHP 變體,它依賴于 HipHop 虛擬機 (HHVM),是 Facebook 大部分的基礎。Meta 推薦將 Hack 用于業(yè)務邏輯和相對無狀態(tài)的應用程序。
Hack 項目地址:https://hacklang.org/
Python 和 C++ 的受歡迎程度無需多言了,Meta 使用自研 Hack 語言也是情理之中。那么,Meta 又是如何引入并使用 Rust 的?
Rust 在 Facebook 的使用及發(fā)展
2016~2017 年:早期用于源代碼控制
在引入 Rust 編程語言之時,F(xiàn)acebook 還不叫 Meta。
最古老的 Rust 代碼庫可以追溯到 2016 年。當時,F(xiàn)acebook 單體倉庫中的源代碼變化率開始“侵占” Mercurial 源代碼控制管理工具所能跟上的最大提交率。對此,F(xiàn)acebook 的源代碼控制團隊發(fā)起了一項名為 Mononoke 的重寫項目,旨在將 Mercurial 的提交率再提高一些數(shù)量級,從而滿足 Facebook 成千上萬的開發(fā)者和自動化流程。
起初,使用 C++ 開發(fā) Mononoke 顯然是個選擇。在那時,F(xiàn)acebook 的后端代碼庫對 C++ 非常重視,這意味著 Mononoke 默認會使用 C++ 實現(xiàn)。但是,源代碼控制團隊需要考慮源代碼控制管理后端的可靠性需求,如果服務因停機或損壞而造成停頓時,那么可靠性就成了首要的考慮因素。因此,團隊選擇使用 Rust 代替了 C++。
Mononoke 是一款優(yōu)秀的測試平臺,因為它和其他 Facebook 系統(tǒng)有著天然的隔閡。如果 Mononoke 能夠使用 Mercurial 協(xié)議與客戶端服務進行對話,并使用 Thrift 協(xié)議與某些存儲系統(tǒng)進行通信,那么選擇 Rust 不會影響源代碼控制團隊工作之外的任何事情。
源代碼控制團隊愿意采用并且能夠支持他們自己使用任何 Rust 特定的工具和基礎設施。從 2019 年開始,Mononoke 就已經(jīng)成為我們單體倉庫的生產(chǎn)后端,并在過去幾年里成功地擴大了規(guī)模。
2017~2019 年:采用曲線
Mononoke 足以證明采用 Rust 是可行的,隨著時間的推移,其他項目也開始考慮和采用 Rust。一開始,這些項目通常是開發(fā)者的工具項目,它們不需要與更廣泛的服務基礎設施進行集成,也不需要小型服務 / 守護進程,只需圍繞一些 C++ 客戶端庫使用幾個手寫的包裝器就能完成工作。
在 Facebook 的 Rust 工程師中,有許多人具有 Python 和 JavaScript 的背景,他們很欣賞 Rust 結合了高性能與編譯時錯誤檢測這一特性。隨著越來越多的成功案例(例如性能提升了 2 到 4 個數(shù)量級等)在公司內(nèi)部流傳,人們對使用 Rust 實現(xiàn)后端服務代碼,以及探索其在移動應用程序中的應用的興趣越來越濃。
2019~2020 年:Rust 得到了一些專門支持
2017 年到 2019 年,源代碼控制團隊成為 Facebook 內(nèi)的非官方 Rust 支持團隊。到了 2019 年,F(xiàn)acebook 的 Rust 開發(fā)者數(shù)量成倍增長,達到 100 多人。
增長背后的原因之一是,Rust 是開發(fā) Diem(原 Libra)區(qū)塊鏈的主要語言,由獨立的 Diem 協(xié)會監(jiān)督,而 Facebook 的數(shù)字錢包 Novi 就是 Diem 協(xié)會的成員。Diem 區(qū)塊鏈主要是由 Rust 編寫的,并涵蓋了 94% 的開源代碼庫。
考慮到需求的增加,源代碼控制團隊的兼職協(xié)助并不足以支持受益的團隊數(shù)量。因此,F(xiàn)acebook 創(chuàng)建了一個小型的 Rust 開發(fā)者體驗團隊,該團隊致力于解決工具和集成方面的挑戰(zhàn),比如在生產(chǎn)非 cargo 構建中使用語言的開源包注冊表生態(tài)系統(tǒng)的機制。該團隊為整個公司的 Rust 開發(fā)者建立了一個中央連接點以解鎖用例,優(yōu)先考慮短期的開發(fā)者體驗問題,改進核心庫,并在剛剛起步的 Rust 代碼庫通過百萬行大關時為其成功奠定基礎。
盡管 Rust 以難學著稱,但在過去幾年中,得益于內(nèi)存安全特性,Rust 還是贏得諸多青睞。它已經(jīng)被微軟、谷歌和 Linux 內(nèi)核開發(fā)人員采用,更不用說蘋果、亞馬遜和 Dropbox。
Facebook 自研編程語言Move 的消失
除了上述提到的四種編程語言外,其他的一些編程語言如 Java、Erlang、Haskell 和 Go,則被認可用于特定用例,但在這些情況之外不被采用。
在加密貨幣大火的 2020 年,F(xiàn)acebook 還曾推出了一款自研 Move 語言,旨在為 Libra 區(qū)塊鏈奠定安全和可編程的基礎。
Libra(前稱為:GlobalCoin 或 Facebook Coin)是一種由 Facebook 公司(今 Meta 公司)提出的加密貨幣,原計劃于 2020 年發(fā)行,但因許多爭議而暫停發(fā)行。
Move 是一種安全靈活的 Libra 區(qū)塊鏈編程語言,它是一種可執(zhí)行的字節(jié)碼語言,用于實現(xiàn)自定義交易和智能合約。
但隨著扎克伯格“穩(wěn)定幣”夢碎,Move 也逐漸退出人們的視野。
參考鏈接:
https://www.theregister.com/2022/07/27/meta_approves_four_programming_languages/
- 世界要聞:Meta選定四種編程語言作為首選語言,官方:每種語言都經(jīng)過了嚴格篩選
- 什么是新股市值配售?新股市值配售股票要求
- 看斯威X7如何以質(zhì)取勝,SWM斯威x7油耗動力與質(zhì)感兼?zhèn)?/a>
- 股票回檔是什么意思?股票回踩確認是什么意思?
- 主力增倉是什么意思?主力資金流入與流出真實嗎?
- 限售解禁是什么意思?限售解禁的股票是漲還是跌?
- 深證指數(shù)是什么?大盤指數(shù)看深指還是滬指?
- 主播瑜大公子首次在三亞海旅免稅城開啟帶貨直播,快手電商強勢切入免稅市場
- 股票中什么叫趨勢線?股票三條線怎么看漲跌?
- 滯脹是什么意思?滯脹現(xiàn)象產(chǎn)生的原因是什么?
- 產(chǎn)業(yè)新觀察│雨果跨境攜手濱州市跨協(xié)正式發(fā)布“航海計劃”
- ebitda是什么意思?利潤率計算公式有幾種?
- 老鼠倉是什么意思?老鼠倉拉升周期有多久?
- 新股配號什么意思?起始配號與中簽號的關系
- 買股票一定會賺錢嗎?普通人炒股后會收手嗎?
- 股票中二陽夾一陰是啥?股票兩陽夾一陰是什么情況?
- 教育部等五部門聯(lián)合推薦優(yōu)質(zhì)課外資源,騰訊產(chǎn)品青少年模式首發(fā)《給孩子們的大師講堂》
- 高拋低吸口訣是什么?短線高拋低吸最正確的方法
- 銀行拒絕該交易多久解除?銀行卡拒絕交易怎么解封?
- 美國加息看什么?美聯(lián)儲不加息意味著什么?