自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

“Rust難學”只是一個謊言

原創(chuàng) 精選
開發(fā) 前端
谷歌的這項調(diào)查主要針對1000多名受雇于谷歌的軟件開發(fā)人員,其中約有13%的人有Rust經(jīng)驗,但多數(shù)人還是來自C/C++、Python、Java、Go或Dart。結(jié)果顯示,Rust并不比其他編程語言更難學習。

近年來Rust的存在感日漸升高,但是其陡峭的學習曲線似乎總是令人望而生畏。不過谷歌的一項內(nèi)部調(diào)查表明,關(guān)于Rust的“難學”或許只是一種謠傳。

Rust到底難不難學?谷歌有了Go,為何還要支持Rust?頻頻陷入內(nèi)斗的Rust領(lǐng)導團隊于近日徹底重組,這會為Rust發(fā)展帶來哪些變化?且看下文分解。

1、不難學,但新手勿入

谷歌的這項調(diào)查主要針對1000多名受雇于谷歌的軟件開發(fā)人員,其中約有13%的人有Rust經(jīng)驗,但多數(shù)人還是來自C/C++、Python、Java、Go或Dart。結(jié)果顯示,Rust并不比其他編程語言更難學習。

Rust語言因其高性能以及C和C++等其他系統(tǒng)語言所缺乏的安全保證而受到推崇,但也經(jīng)常聽人抱怨Rust學習門檻高,尤其是對于所有權(quán)等陌生概念的理解往往會耗費時間。

根據(jù)調(diào)查,對于開發(fā)人員來說,掌握Rust的三大挑戰(zhàn)是:宏、所有權(quán)和借用、異步編程。盡管如此,開發(fā)人員仍然很快掌握了這項語言。

如下圖所示,約有27%的被調(diào)查者有信心在2-3周內(nèi)上手Rust,超2/3的受訪者表示用兩個月或更短時間就能為Rust代碼庫做出貢獻。此外,1/3的受訪者利用兩個月或更短的時間,使用Rust編寫代碼的效率就和其他語言一樣高。

圖源:googleblog圖源:googleblog

報告指出:“沒有任何數(shù)據(jù)表明Rust相對于任何其他語言有任何生產(chǎn)力損失?!?/p>

值得一提的是,開發(fā)人員普遍認為Rust代碼的質(zhì)量很高。當問及他們是否認為Rust代碼的正確性高于用其他語言編寫的代碼時,超過85%的受訪者表現(xiàn)出了信心。

關(guān)于Rust的難學與否,國內(nèi)外各大論壇都曾討論過相關(guān)話題。綜合來看,還是應了那句老話“難者不會,會者不難”。有人倒在了“入門階段”,認為其語法逆天、泯滅人性,也有人如下面這位有過C++經(jīng)驗的網(wǎng)友所描述的,“學習成本不大”。

圖源:知乎圖源:知乎

當然,對于編程新手或者沒有其他語言經(jīng)驗的人來說,Rust肯定不會是首選。不過,對于有一定編程經(jīng)驗的開發(fā)者來說,是否可以擯棄先入為主的觀念,愿意嘗試接納Rust的玩法,才是關(guān)鍵。畢竟,從來沒有完美而全能的語言,只有適合與否的語言。

2、為何科技巨頭力推Rust

根據(jù)Stack Overflow的年度開發(fā)人員調(diào)查,Rust已經(jīng)連續(xù)數(shù)年坐鎮(zhèn)全球最受歡迎編程語言Top5。不止于開發(fā)者,諸多大型科技公司對于Rust也頗為青睞。

由于其內(nèi)存安全性和多線程功能等,Rust正在大公司的技術(shù)堆棧中得到廣泛采用。谷歌、蘋果、微軟、Meta等都以某種形式采用了Rust。

  • 谷歌使用Rust為Android編程,甚至開源了全面的Rust課程
  • 蘋果在其許多項目中使用 Rust,包括機器人、AR/VR 工程、云工程和視頻工程
  • 微軟是Rust的大力支持者,用它來減少Windows中內(nèi)存安全問題的數(shù)量;
  • Meta不僅加入了 Rust 基金會,還指定Rust為官方支持的服務器端編程語言之一

問題來了:為什么這些大型科技公司在投入資源開發(fā)自己的編程語言后又轉(zhuǎn)向Rust?

例如,由谷歌創(chuàng)建的Go在其產(chǎn)品中被廣泛使用。同樣,由蘋果開發(fā)的Swift也用于為iOS,MacOS等構(gòu)建應用程序。Microsoft開發(fā)的C#也在內(nèi)部推動,但所有這些公司之間的共同點是,盡管他們有自己的語言,但他們還是找到了對Rust的需求。

究其根本,Rust填補了擁有大型舊代碼庫的公司的一個非常重要的利基市場:現(xiàn)代低級編程語言。每種語言都有其獨一無二的個性,如果兩種語言都以或多或少相同的方式行動,那么我們就不會真的需要兩種不同的語言。

舉個例子,Go和Rust。這兩者都是流行的、現(xiàn)代的、廣泛使用的語言,但具體來說,兩者的編程方法和適用場景截然不同。資深軟件開發(fā)工程師Andrew Lader描述道:

“如果你希望有更好的開發(fā)效率,或是有非常多不同的服務需要實現(xiàn),或者開發(fā)團隊較為龐大,Go是一個很好的選擇。Go提供了一流的并發(fā)能力,不允許不安全的內(nèi)存訪問(Rust也是如此),也不會強迫你管理每一個細節(jié)。Go是高效且強大的,避免開發(fā)人員陷入困境,專注于簡單性和統(tǒng)一性。

另一方面,如果你需要榨干每一滴性能,那么你應該選擇Rust。與Go相比,Rust更像是C++的競爭對手。與C++同樣強大,還提供了許多令人愉快的改進。Rust使開發(fā)者能夠更細致地控制線程的其他行為、錯誤處理、變量生命周期!還有,Rust設計的目的之一是能夠與C互操作。Go也可以,但為了實現(xiàn)這個目標需要付出很多,這并不是Go的重點?!?/p>

由此可見,Go和Rust各有所長,因為他們針對的是完全不同的使用情況,至于到底選Go還是Rust,終究還是要看哪種語言更適合你和你的團隊的實際情況。

3、結(jié)束“抓馬”大亂斗,社區(qū)治理開始新故事

不管是在開發(fā)者群體中,還是在各大科技公司里,Rust正以不容忽視之姿呈現(xiàn)上升之勢,但今年以來,關(guān)于Rust的一些爭議新聞不時出現(xiàn)在公眾視野。

6月初,我們發(fā)布了 《果然,Rust還是分叉了!》一文,提到了Rust團隊內(nèi)部的混亂治理,以及一些和技術(shù)無關(guān)的激烈“政治斗爭”事件。社區(qū)對Rust管理團隊這種無休止的“混亂無序”狀態(tài)感到擔憂,認為這會損害Rust語言的聲譽和發(fā)展。

種種治理弊端的暴露促使Rust團隊內(nèi)部也開始了整頓。不久前,他們宣布對組織結(jié)構(gòu)進行重大調(diào)整。

此前,Rust項目創(chuàng)建了包括core、language、mod、library和cargo在內(nèi)的若干團隊。其中核心(core)團隊主要負責監(jiān)督其他Rust團隊出現(xiàn)的問題。但時移世易,由于核心團隊擁有對Rust語言動態(tài)的最高決策權(quán),又不受其他團隊監(jiān)督,就導致事態(tài)走向了失序。

調(diào)整后,此前“抓馬”不斷的Rust核心團隊被移除,臨時領(lǐng)導者地位徹底終結(jié)。取而代之的是,Rust項目的每個頂級團隊選派一名代表,共同組成Rust領(lǐng)導委員會(Rust Leadership Council),負責頂級治理問題。

“我們希望在成功的基礎上再接再厲,在失敗的基礎上加以改進,最終導致更大的透明度和問責制。”Rust領(lǐng)導委員會如是表態(tài)。如何提高Rust領(lǐng)導層的透明度,償還可能的“治理債務”才是今后工作的重點。

而Rust項目的大部分發(fā)展和維護工作,如編譯器和核心工具的維護、基礎設施的管理等,仍由九個頂級團隊負責。這九個團隊涵蓋以下內(nèi)容:編譯器、crates.io、開發(fā)工具、基礎結(jié)構(gòu)、語言、啟動板、庫、審核和發(fā)布。

有趣的是,回溯過往,可以發(fā)現(xiàn),Rust之所以會陷入治理危機與其發(fā)展歷程息息相關(guān)。Rust語言最初只是Mozilla員工Graydon Hoare 在2006年創(chuàng)建的一個業(yè)余項目,直到在2021年2月,Rust被移交給獨立的Rust基金會,這門語言才真正開始起飛。也正因為如此,Rust從誕生之初就缺乏一位標志性的技術(shù)權(quán)威的領(lǐng)導。

與之形成鮮明差異的是Python。Guido van Rossum不僅是Python的創(chuàng)始人,還被冠以“終身仁慈獨裁者”(Benevolent Dictator For Life-BDFL)稱號(龜叔在2018年時宣布不再出任BDFL)。對于一門語言而言,社區(qū)出現(xiàn)爭議時擁有最終決定權(quán)的是誰,很大程度上會決定其生態(tài)發(fā)展的最終導向。

參考鏈接:

https://opensource.googleblog.com/2023/06/rust-fact-vs-fiction-5-insights-from-googles-rust-journey-2022.html

https://analyticsindiamag.com/why-big-techs-are-pushing-rust/

https://www.infoworld.com/article/3701230/rust-language-project-revamps-governance.html

https://www.sohu.com/a/690332537_121124377

責任編輯:武曉燕 來源: 51CTO技術(shù)棧
相關(guān)推薦

2023-12-26 18:47:32

2024-06-07 08:59:35

2015-07-27 10:34:55

大數(shù)據(jù)大忽悠

2011-11-08 10:08:59

2015-12-14 10:01:48

數(shù)據(jù)中心

2024-01-15 00:35:23

JavaScript框架HTML

2023-02-27 12:53:14

Linux內(nèi)核

2021-06-08 07:48:26

iOS 15 Linux 操作系統(tǒng)

2009-11-28 20:08:20

谷歌ChromeWeb應用

2025-02-27 00:00:15

2023-04-18 08:14:27

ElixirRustWebRTC

2013-06-05 10:32:38

GoogleAndroid Stu

2023-08-28 07:04:17

2024-07-10 08:51:29

2024-02-27 07:33:32

搜索引擎Rust模型

2022-04-10 23:02:08

GoRust語言

2021-07-06 14:36:05

RustLinux內(nèi)核模塊

2021-01-03 16:30:34

Rust編程語言

2016-01-25 13:22:45

SparkSparkSQL數(shù)據(jù)分析

2021-07-07 06:16:29

EmacsMeta鍵編程
點贊
收藏

51CTO技術(shù)棧公眾號