成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

“Rust難學”只是一個謊言

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

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

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

1、不難學,但新手勿入

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

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

根據調查,對于開發人員來說,掌握Rust的三大挑戰是:宏、所有權和借用、異步編程。盡管如此,開發人員仍然很快掌握了這項語言。

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

圖源:googleblog圖源:googleblog

報告指出:“沒有任何數據表明Rust相對于任何其他語言有任何生產力損失。”

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

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

圖源:知乎圖源:知乎

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

2、為何科技巨頭力推Rust

根據Stack Overflow的年度開發人員調查,Rust已經連續數年坐鎮全球最受歡迎編程語言Top5。不止于開發者,諸多大型科技公司對于Rust也頗為青睞。

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

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

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

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

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

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

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

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

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

3、結束“抓馬”大亂斗,社區治理開始新故事

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

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

種種治理弊端的暴露促使Rust團隊內部也開始了整頓。不久前,他們宣布對組織結構進行重大調整。

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

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

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

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

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

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

參考鏈接:

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技術棧
相關推薦

2023-12-26 18:47:32

2011-11-08 10:08:59

2015-12-14 10:01:48

數據中心

2024-01-15 00:35:23

JavaScript框架HTML

2015-07-27 10:34:55

大數據大忽悠

2024-06-07 08:59:35

2009-11-28 20:08:20

谷歌ChromeWeb應用

2021-06-08 07:48:26

iOS 15 Linux 操作系統

2023-02-27 12:53:14

Linux內核

2025-02-27 00:00:15

2023-04-18 08:14:27

ElixirRustWebRTC

2023-08-28 07:04:17

2013-06-05 10:32:38

GoogleAndroid Stu

2022-04-10 23:02:08

GoRust語言

2024-07-10 08:51:29

2024-02-27 07:33:32

搜索引擎Rust模型

2021-01-03 16:30:34

Rust編程語言

2021-07-06 14:36:05

RustLinux內核模塊

2016-01-25 13:22:45

SparkSparkSQL數據分析

2021-07-07 06:16:29

EmacsMeta鍵編程
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产一区二区三区视频 | 亚洲欧美国产精品一区二区 | 91麻豆蜜桃一区二区三区 | 国产精品成人国产乱一区 | 亚洲啪啪 | 国产成人午夜精品影院游乐网 | 中国大陆高清aⅴ毛片 | 国产 欧美 日韩 一区 | 欧美一级片在线观看 | 999在线精品 | 亚洲国产aⅴ成人精品无吗 国产精品永久在线观看 | 婷婷免费视频 | 91精品在线看 | 亚洲中午字幕 | 伊人久久伊人 | 日韩电影免费在线观看中文字幕 | 久久精品亚洲一区二区三区浴池 | 亚洲高清视频在线观看 | 久久久做 | 国产四区 | 成人深夜福利 | 成人污污视频 | av在线免费观看网站 | 美女黄18岁以下禁止观看 | 午夜爽爽爽男女免费观看影院 | 一区欧美| 国产成人免费视频网站高清观看视频 | 久久久久久亚洲 | 日本在线免费 | 九九九久久国产免费 | 国产精品揄拍一区二区久久国内亚洲精 | 午夜电影网 | 啪啪免费网站 | 亚洲精品一区中文字幕乱码 | 国内精品久久久久久 | 亚洲综合视频一区 | 九九热免费观看 | 狠狠久| 亚洲成人免费 | 亚洲欧美一区二区三区视频 | 日韩久久精品 |