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