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