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

Rust口碑那么好,為何學的人那么少?

原創 精選
開發 開發工具
Rust為什么叫好不叫座

  放眼編程語言界,新舊勢力的交替歷來暗潮涌動又動人心弦。而在最近兩年,Rust的表現不可謂不搶眼。

      根據SlashData 2021年開發者報告顯示,使用Rust編程的開發人員在過去24個月內增長了兩倍,達到了220萬。過去C/C++、Java等是大廠的常用語言,而如今,字節跳動、亞馬遜、谷歌、蘋果均已經用上了Rust語言,這意味著學好Rust語言就有機會找到高薪工作。

  不過,也有人認為Rust學習門檻高,戲言“Rust的語法有點反人類”。那么事實到底如何呢?

“當紅炸子雞”Rust:高效、安全但難學

  Rust最初由Mozilla員工Graydon Hoare在2006年設計和發布,目前由Mozilla團隊和一眾開源社區成員共同開發和維護。

       Rust能火,并非偶然。Graydon Hoare曾形容:“Rust是一種采用過去的知識解決將來的問題的技術。”站在前人的肩膀上,Rust很大程度上解決了很多其他編程語言的痛點。

  首先,Rust發揮了靜態語言的優勢。相較動態語言在調試和運行時的不確定性,靜態類型的語言允許對數據及其行為預先進行編譯器級別的檢查和約束,在運行時只保留少量的類型檢查,這極大地避免了程序員的麻煩,同時有益于鼓勵長期的可維護性。

  其次,Rust解決了并發條件下的數據競爭問題,讓并發更容易。當兩個線程同時訪問同一內存時會發生數據競爭,這就可能導致某些不可預測的行為。Rust從編譯階段就將數據競爭解決在了萌芽狀態,保障了線程安全。用戶可以用庫的形式實現各種高效且安全的并發編程模型,進而充分利用多核時代的硬件性能。

  再者,Rust做到了更好的內存安全特性。在內存管理上,常見的方式有兩種:要么如Java、Python一樣使用垃圾回收算法,要么像C++一樣手工管理內存。但垃圾自動回收必然影響性能,手工管理內存則可能會出現內存泄漏和懸停指針之類的問題。Rust不同,其所有權系統在編譯時就分析程序的內存管理,而且沒有額外的運行時開銷。這種無垃圾回收器的內存安全機制是Rust經典且核心的設計之一。

        還有,作為系統級編程語言,Rust的基本理念是 “零成本抽象”。這一理念讓Rust具備高級語言表達能力的同時,又不會帶來性能損耗。與其他系統級編程語言(如C或C++)相比,Rust不需要程序員將所有時間都花在細節上,而是通過添加更高層次的編程概念,確保使用的抽象幾乎沒有運行時開銷,這種抽象與等效的手寫代碼具有同等的性能。

  總的來說,在性能上,Rust內存利用率極高,能夠勝任對性能要求特別高的服務;在安全性上,Rust豐富的類型系統和所有權模型保證了內存安全和線程安全,在編譯期就能夠有效阻斷各種錯誤的產生。

       有著如此表現的Rust雖然還是編程語言界的“小鮮肉”,卻迅速收獲了開發者們的青睞。根據Stack Overflow 2021年開發者調查報告,Rust連續六年成為最受開發者喜愛的編程語言。

  不過,“最受喜愛”并不等于“最想使用”。

      盡管口碑好、人氣高,但Rust的學習成本高幾乎是眾所周知的。在官方的多次調查中,不少開發者提到需要降低學習門檻,讓Rust更容易被學習。2021年Rust Survey調查中,有47.41%的受訪者認為采用Rust很有挑戰性,僅有17.14%認為挑戰性不大。

圖片

圖源:互聯網

  可以說,除了部分具備一定的C/C++經驗的開發者在使用Rust時會容易一點,很多人會因為“太難上手”而對Rust望而生畏。

Rust對決C++:以卵擊石還是后生可畏

  Rust到底值不值得花功夫去上手?我們可以從它與其他語言的比較中一窺端倪。

  Rust常常被認為是C++的競爭語言,但這種說法也會被一些C++擁護者吐槽為“碰瓷”。不可否認,Rust很受歡迎,且頗有后勁,但目前來說,C++的主導地位依舊不可動搖。宏觀來看,C++擁有更大的社區、更廣泛的用例,并且在實戰中得到了絕大多數企業的認可。但另一方面,Rust在安全性上表現更優,沒有C++那么重的歷史包袱,作為新生力量潛力更大,等生態更加豐富后可能會更有作為。

  內存安全:同為系統級編程語言,C++為了保持速度,沒有走內置垃圾回收機制的路子,將內存安全問題留給了開發人員。而Rust通過其所有權系統全面強制并提高了其內存安全性,基本消除了手動內存管理的需要。

  智能指針:Rust和C++語言都廣泛支持指針,在兩種語言中,首選都是智能指針。Rust標準庫提供了幾種與C++類似的智能指針,如Box相當于C++中的std::unique_ptr;Rc相當于C++中的std::shared_ptr。

      框架和庫:Rust和C++都有大量的框架和庫可以使用。盡管發展時長差距較大,但Rust目前已經有大量庫可供網頁開發、游戲開發、區塊鏈等使用。而

C++庫主要是標準庫,是類和函數的集合。兩種語言都有大量活躍的貢獻者。

  包管理和工具:Rust的官方包管理器是Cargo,就普遍反饋來說比較好用、很有競爭力。而C++在包管理方面也有Conan之類的工具,發展也不錯。兩者使用體驗如何見仁見智。

  并發性:兩種語言在并發中表現均很穩健。但在線程安全方面,面對數據競爭這種難以定位的并發漏洞類型,Rust的內存安全特性更有助于預防這類問題的發生。不過,對自身代碼非常自信的程序員可能會覺得,Rust在實現多線程應用時過于束縛。

  社區支持:C++有C++標準委員會的領導,而Rust也有Rust基金會的支持。兩種語言的社區都很活躍。不過因為C++發展時間要長得多,生態上肯定要比Rust成熟很多,受眾基礎也要大得多。

  歸根結底,所有語言都是工具,真正使用時都要因地制宜。作為一門優缺點都極為鮮明的語言,Rust在實戰中表現如何仍需要開發者的親手驗證。有位C++程序員的評價或許可以給我們更多啟發:

  “雖然Rust定位于一門系統級編程語言,但它并沒走C++兼容C的老路,完全沒有歷史的包袱,可以輕裝上陣,充分吸收各家編程語言之長,避其之短。Rust有完全不亞于C++的表達能力和性能,又解決了C++的最大痛點(內存安全、線程安全),這對C++程序員來講無疑是非常有吸引力的。目前,C++仍然是我的主力編程語言,但我對Rust是看好的。它不僅實用,反過來也會促進對C++中關鍵概念和問題的理解。”

前景:Rust會登頂嗎?

  在代碼江湖,編程語言總是呈現出“江山代有才人出”的態勢。Rust作為一門年輕的語言,面向一眾老前輩,也展示出了作為后起之秀的銳氣和野心。

       在今年上半年, Rust語言設計團隊(Lang Team)在官方博客中公布了Rust語言2024年的更新路線圖。這張路線圖昭示了Rust語言的未來發展方向。其重點有三:

       一是努力拉平陡峭的學習曲線。面向Rust學習門檻高的問題,Lang Team力圖通過各種手段簡化程序,使開發者能更輕松地表達代碼意圖,而不需要處理邏輯實現的各種細枝末節。

      二是讓Rust庫的生態系統更加輕松協調。Lang Team希望通過幫助管理功能生命周期,擴展庫的功能,以及增強互操作性,使庫的作者能夠更好地服務于他們的用戶。

      三是進一步擴大Rust項目規模。為更有效地推進Rust發展,Lang Team希望讓開發者能對團隊的現存問題、工作狀況一目了然,并對他們可以如何提供幫助更加清晰,使開發人員能夠積極參與推動他們熱衷的工作。

  不過,對于Rust的前景,依舊眾說紛紜。

  有人說,Rust可能還是干不過老語言,終究難逃曇花一現的命運;

  也有人說,Rust可能在Web應用開發、嵌入式設備開發等領域另辟洞天、大有作為;

  還有人說,Rust也許會吞下C++大部分應用場景,在漫長的發展期后完成登頂……

  而對于程序員是否要學Rust,支持和反對陣營也同樣各執己見。

  支持者給出的理由,主要集中在以下幾點:

  • Rust站在巨人的肩膀上,也確實解決了C++的部分問題,很好地平衡了性能和開發效率。
  • 一些企業,尤其是大型公司,已經在使用Rust或正計劃使用Rust。以后對于Rust開發者的需求會持續上升,而且可以預見薪酬很可觀。
  • 作為一門年輕的語言,Rust的領域還沒那么卷。抓住這個時機就有望成為這片“新大陸”的掘金者。

  反對者則認為:

  • 從職業發展考慮,對萌新來說,學習Rust得不償失。因為Rust目前還是一門小眾語言,將來會發展成什么樣均未可知。而其他更為成熟的語言,掌握之后在實踐中已經可以滿足大部分業務需求。
  • Rust的學習門檻決定了,有能力鉆研其語法的程序員,用別的語言也很少會犯Rust想要從根源上杜絕的"低級錯誤";而對于基礎薄弱、編程思維混亂的程序員,很少能學進去Rust。這個矛盾就讓Rust有點“不上不下”。
  • 程序真正面向的是人,而不是機器。語法簡單、易于理解、減少程序員的心智負擔才應該是編程語言未來的發展方向。Rust顯然不符合這一點。

  回顧這些論點,可以發現,其實作為局中人,要預判一門語言的發展是很難的,因為沒有人可以窺見其發展全貌。而且每門語言的發展也需遵循其自身的生命周期,不同階段的評判標準不同,結論自然也不一樣。或許就像有人說的,“我不討厭任何編程語言,我只是討厭還沒掌握的言。”具體到每一個開發者,所有的爭論、質疑、好惡都要在嘗試、學習、實操中逐步地變化演進。

  參考資料:

  https://zhuanlan.zhihu.com/p/342849423

  https://blog.csdn.net/oSuiYing12/article/details/106844271

  https://www.toutiao.com/article/7083687609608339998/

  https://lang-team.rust-lang.org/roadmaps/roadmap-2024.html

  https://thestack.technology/rust-language-explosive-growth-challenges-rust-governance/

責任編輯:張潔 來源: 51CTO技術棧
相關推薦

2012-02-21 09:47:49

數據女性

2022-01-10 09:42:37

6G5G網絡

2021-04-12 16:21:32

編程程序員技術

2014-06-18 15:31:24

RHEL 7Fedora

2012-02-22 10:47:58

網絡·安全周刊

2018-05-21 12:02:22

DRAM價格內存

2021-02-21 08:48:19

技術升職程序員

2014-03-14 09:35:56

內存優化軟件內存優化

2015-06-05 10:17:01

老羅創業不太成功

2021-12-10 23:53:04

手機電池工具

2021-10-14 09:52:53

Dockerfile鏡像容器

2020-04-20 08:41:38

工資職場加薪

2012-10-17 10:08:03

2017-02-22 14:52:51

機器學習人工智能聲音

2020-03-02 08:33:35

高質量可維護代碼

2023-06-08 18:25:40

Doris場景查詢

2018-10-19 11:15:34

云計算互聯網數據中心

2014-04-23 15:13:42

2023-01-24 16:13:22

編程語言JavaIT

2021-12-22 14:20:31

語言人工智能機器學習
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 一区二区在线 | 亚洲一区二区三区在线观看免费 | 中文字幕免费在线 | www.青青草 | 欧美成人h版在线观看 | 国产农村一级国产农村 | 日韩一区二区三区视频 | 成人无遮挡毛片免费看 | 欧美一卡二卡在线观看 | 欧美在线一区视频 | 在线成人av | 完全免费在线视频 | 亚洲精品在线免费观看视频 | 刘亦菲国产毛片bd | 国产免费一区二区 | 天天视频一区二区三区 | 涩涩鲁亚洲精品一区二区 | 国产成人精品免高潮在线观看 | 香蕉久久网 | 日韩精品视频中文字幕 | 亚洲一区二区免费电影 | 中文字幕成人av | 日韩视频国产 | 久久国产精品72免费观看 | 中文字幕在线看 | 国内自拍偷拍一区 | 日韩在线高清 | 人人看人人草 | 中文字幕精| 日韩精品免费在线观看 | 欧美亚洲视频 | 国产成人免费视频网站高清观看视频 | 五月婷亚洲| 黄色综合 | 91久久久久久久久 | 九一视频在线播放 | 日韩综合在线 | 亚洲精品国产电影 | 久久er精品| 欧美精品1区 | 亚洲精品国产成人 |