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

Rust會(huì)在2024封神嗎?

原創(chuàng) 精選
開發(fā)
近日,Rust語言設(shè)計(jì)團(tuán)隊(duì)Lang Team公布了Rust語言2024年的更新路線圖,這也是繼Rust2015、Rust2018、Rust2021之后的第四版編程語言路線圖。該路線圖重點(diǎn)提及三大規(guī)劃:降低學(xué)習(xí)門檻、擴(kuò)展生態(tài)系統(tǒng)、Rust項(xiàng)目擴(kuò)展。

近日,Rust語言設(shè)計(jì)團(tuán)隊(duì)Lang Team公布了Rust語言2024年的更新路線圖,這也是繼Rust2015、Rust2018、Rust2021之后的第四版編程語言路線圖。該路線圖重點(diǎn)提及三大規(guī)劃:降低學(xué)習(xí)門檻、擴(kuò)展生態(tài)系統(tǒng)、Rust項(xiàng)目擴(kuò)展。

一直被人詬病學(xué)習(xí)門檻太高的Rust語言,此次公布的規(guī)劃目標(biāo)也極其明確,未來很有可能吸引更多的開發(fā)者學(xué)習(xí)和使用這門語言。本文將對(duì)Rust語言的特點(diǎn)、優(yōu)劣勢、使用現(xiàn)狀等情況進(jìn)行梳理,希望能夠?qū)Υ蠹矣兴鶐椭?/p>

在最新一期的TIOBE 4月編程語言排行榜中,Rust語言位列第28名。

TIOBE 4月編程語言排行榜第1-20名

 

TIOBE 4月編程語言排行榜第21-30名

Rust 2024路線圖曝光

Rust 2024路線圖包含三大目標(biāo),首先就是降低學(xué)習(xí)門檻:Lang Team 希望在新版本中能夠簡化程序,使開發(fā)者只需處理其領(lǐng)域的固有復(fù)雜性,不再需要處理Rust的意外復(fù)雜性。

針對(duì)這一愿景,該團(tuán)隊(duì)提出了四個(gè)目標(biāo):

  • 更精確的分析,更少的繁瑣:通過改進(jìn)借用檢查器、類型推理等,使編譯器能夠更好地識(shí)別代碼是否正確。識(shí)別并消除 "boilerplate" 模式,例如到處復(fù)制粘貼同一組 where。
  • 更容易、更直接地表達(dá)代碼的意圖:在必要時(shí)擴(kuò)展語言,以便更直接地表達(dá)您希望代碼執(zhí)行的操作,例如通過語法糖的形式(如 let-else),或者擴(kuò)展類型系統(tǒng)(如泛型關(guān)聯(lián)類型)。
  • 改進(jìn)異步支持:將 async-await 支持?jǐn)U展到當(dāng)前的 "MVP" 之外,如traits 中的 async fns、async drop 等特性。
  • 讓 dyn Trait 更有用:拓寬可用于 dyn 的特性集,讓使用 dyn 更接近于使用泛型。

其次是擴(kuò)展生態(tài)系統(tǒng):Lang Team 表示,有很多事情是庫作者不能做的,或者不容易做的。比如他們無法控制用戶看到的錯(cuò)誤信息,或者部署一個(gè)需要特殊選擇才能使用的“不穩(wěn)定”特性。因此,該團(tuán)隊(duì)希望通過幫助管理功能的生命周期或擴(kuò)展庫的功能,使庫作者能夠更好地為用戶服務(wù)。

最后是Rust項(xiàng)目擴(kuò)展:為了盡可能使Rust發(fā)揮作用,確保Rust的質(zhì)量、穩(wěn)定性和整體一致性,該團(tuán)隊(duì)希望新版本能夠及時(shí)查看狀態(tài)、明確的所有者和溝通、具有工具支持的高效開放的流程。

目前距離Rust2024還為時(shí)尚早,Rust的路線圖有可能隨著時(shí)間的推移,不斷進(jìn)行優(yōu)化升級(jí)。

目前來看,Rust的用戶群體不斷壯大,有數(shù)百家公司使用Rust進(jìn)行開發(fā),比如 Dropbox、 Yelp  Cloudflare。作為一門發(fā)展趨勢良好的編程語言,Rust的特點(diǎn)還是非常突出的。

特征:C在玩刀,Rust在玩跑酷

Rust的主要特征是運(yùn)行速度快、內(nèi)存利用率高,它沒有運(yùn)行時(shí)或垃圾收集器,它適合用在對(duì)性能要求高的關(guān)鍵的服務(wù),它可以在嵌入式設(shè)備上運(yùn)行,并且很容易與其他語言集成。在未來,Rust語言的速度快、占用內(nèi)存少等特點(diǎn),將使我們能夠更省力的編寫代碼,這類語言將變得更加重要。

可靠性:Rust 豐富的類型系統(tǒng)和所有權(quán)模型保證了內(nèi)存和線程的安全,并能夠在編譯時(shí)消除許多錯(cuò)誤。

生產(chǎn)力:Rust 有很好的文檔,提供了一個(gè)非常友好的編譯器,錯(cuò)誤信息提示非常友好。反觀C和C++代碼的編譯器提示消息則是出了名的難以理解。如果你想學(xué)習(xí)系統(tǒng)編程,使用“rustc”編譯器做可以讓你不用擔(dān)心內(nèi)存安全而能夠?qū)W⑵渌氖虑椤?/p>

正如一位著名的程序員曾經(jīng)說過:Pascal就像穿著緊身衣,C就像在玩刀,而C++就像在玩弄燃燒的電鋸。在這個(gè)比喻中,Rust就像是穿著保護(hù)裝備懸掛在繩子上做跑酷運(yùn)動(dòng)??雌饋碛悬c(diǎn)可笑,但是可以用它做各種很酷的動(dòng)作而不傷害自己。

效率:先抑后揚(yáng)、后發(fā)制人

關(guān)于Rust的效率問題,主要從學(xué)習(xí)、運(yùn)行、開發(fā)三個(gè)維度進(jìn)行考量。

1、學(xué)習(xí)效率

眾所周知,Rust的學(xué)習(xí)曲線陡峭,隨著學(xué)習(xí)的不斷深入,你會(huì)逐漸發(fā)現(xiàn) Rust 之難,不在于很容易學(xué)到的語言特性,而在于:

  • 實(shí)踐中如何融會(huì)貫通的運(yùn)用
  • 遇到問題(生命周期、借用錯(cuò)誤、自引用等)時(shí)如何迅速正確地解決
  • 大量的標(biāo)準(zhǔn)庫方法記憶及熟練使用,這是保證開發(fā)效率的關(guān)鍵
  • 心智負(fù)擔(dān)較重,特別是初中級(jí)階段時(shí)

2、運(yùn)行效率

得益于各種零抽象開銷、深入底層的優(yōu)化潛力、優(yōu)質(zhì)的標(biāo)準(zhǔn)庫和三方庫實(shí)現(xiàn),Rust具備非常優(yōu)秀的性能,與C語言、C++是同一個(gè)級(jí)別。

Rust還有一個(gè)極大的好處:只要按照正確的方式使用Rust,無需性能優(yōu)化,就能實(shí)現(xiàn)非常優(yōu)秀的表現(xiàn)?,F(xiàn)在有不少用Rust重寫的工具、平臺(tái)都超過了原來用C、C++實(shí)現(xiàn)的版本,可以說是將老前輩拍死在沙灘上,儼然成為一種潮流。

3、開發(fā)效率

Rust的開發(fā)效率可以用先抑后揚(yáng)來形容,在剛開始上手寫項(xiàng)目時(shí),你的開發(fā)速度將顯著慢于Go、Java等語言,但等你開始熟悉標(biāo)準(zhǔn)庫常用的方法,開發(fā)效率將大幅提升,甚至形成“肌肉記憶”后,開發(fā)效率將不會(huì)慢于這些語言,而且原生就能寫出高質(zhì)量、安全、高效的代碼。

益處:個(gè)人和團(tuán)隊(duì)“變強(qiáng)”利器

對(duì)個(gè)人的好處

首先,學(xué)習(xí)Rust語言,可以使你成為更好的程序員。要學(xué)好Rust,你需要深入理解內(nèi)存、堆棧、引用、變量作用域這些其它高級(jí)語言往往不會(huì)深入接觸的內(nèi)容,同時(shí)Rust會(huì)通過語法、編譯器和clippy這些靜態(tài)檢查工具半幫助半強(qiáng)迫的讓你成為更優(yōu)秀的程序員,寫出更好的代碼。

與此同時(shí),當(dāng)你掌握了Rust,你自發(fā)性的就會(huì)想要去做一些更偏底層的工作,這些都可以幫助你更加了解操作系統(tǒng)、網(wǎng)絡(luò)、性能優(yōu)化等底層知識(shí),也會(huì)間接或者直接地接觸到各種算法、數(shù)據(jù)結(jié)構(gòu)實(shí)現(xiàn)。

慢慢的,你就成為那個(gè)更好的程序員了,也是更優(yōu)秀的自己。

其次,學(xué)習(xí)Rust語言,可以增加不可替代性。這里需要說明一下,語言難學(xué),其實(shí)也有好處。一旦掌握,你將具備較強(qiáng)的不可替代性,而不再是一個(gè)簡單的工具人角色??纯船F(xiàn)在內(nèi)卷嚴(yán)重的Java,工具人有多少?一個(gè)人離職,另外一個(gè)人立刻就能替補(bǔ)上。

事實(shí)上,這對(duì)個(gè)人和公司是一種雙贏,公司收獲了更優(yōu)秀的程序員(不可否認(rèn)的是Rust程序員普遍水平很高,畢竟都是有很好的其他語言基礎(chǔ)、也很有追求的自驅(qū)性人才),而個(gè)人也收獲了更穩(wěn)定的工作環(huán)境甚至是更高的收入。

對(duì)團(tuán)隊(duì)的好處

客觀來講,Rust語言的代碼質(zhì)量其實(shí)還是相當(dāng)不錯(cuò)的。開發(fā)者在review時(shí)并不用擔(dān)心潛在的各種坑,因此可以實(shí)現(xiàn)快速的開發(fā)、review、merge流程。

由于Rust語言擁有強(qiáng)大的編譯器和語言特性,其代碼自然就會(huì)比其他語言更少出現(xiàn)Bug。同時(shí)Rust擁有非常完善的工具鏈、最好的包管理工具。種種因素疊加在一起,決定了Rust非常適合大型開發(fā)者團(tuán)隊(duì)的協(xié)作開發(fā)。

也許Rust在開發(fā)速度上不是最快的,但是從開發(fā)+維護(hù)的角度來看,這個(gè)成本絕對(duì)是各個(gè)語言中最小的之一。還有一點(diǎn)很重要,團(tuán)隊(duì)如果招到一位優(yōu)秀的Rust程序員,他會(huì)帶動(dòng)周圍的人,一起慢慢優(yōu)秀(優(yōu)秀的Rust程序員較好辨別,門檻低的語言就沒有那么好辨別)??傊?,一位優(yōu)秀的程序員會(huì)給團(tuán)隊(duì)帶來遠(yuǎn)超他薪資的潛在回報(bào)和長遠(yuǎn)收益。

相比其他語言,Rust的優(yōu)勢

由于篇幅有限,這里不做詳細(xì)對(duì)比,只是簡單介紹下Rust的優(yōu)勢,但也并不是說Rust就一定優(yōu)于這些語言,大家可以在評(píng)論區(qū)各抒己見。

C++

與C++相比,Rust的性能相差無幾,但是在安全性方面更優(yōu),特別是使用第三方庫時(shí),Rust的嚴(yán)格要求會(huì)讓第三方庫的質(zhì)量明顯提高。

語言本身的學(xué)習(xí),Rust的前中期學(xué)習(xí)曲線會(huì)更陡峭,但是對(duì)于未來使用場景和生態(tài)的學(xué)習(xí),C++會(huì)更難、更復(fù)雜。

Java

除了部分純粹的數(shù)字計(jì)算性能,Rust的性能是全面領(lǐng)先于Java的,同時(shí)Rust占用內(nèi)存更小,因此如果想實(shí)現(xiàn)同等規(guī)模的服務(wù),Rust所需的硬件成本顯然更低。

Python

性能方面Rust完勝,同時(shí)Rust對(duì)運(yùn)行環(huán)境要求較低,從這兩點(diǎn)上就基本可以做出選擇了,因?yàn)镻ython和Rust的彼此適用面其實(shí)并不沖突。

Go

Rust語言表達(dá)能力更強(qiáng),性能更高,同時(shí)線程安全方面Rust也更強(qiáng),不容易寫出錯(cuò)誤的代碼,包管理Rust也更好,Go雖然在1.10版本后提供了包管理,但目前還比不上Rust的。

使用現(xiàn)狀

  • AWS從2017年開始就用Rust實(shí)現(xiàn)了無服務(wù)器計(jì)算平臺(tái): AWS Lambda  AWS Fargate, 并且用Rust重寫了Bottlerocket OS和AWS Nitro系統(tǒng),這兩個(gè)是彈性計(jì)算云(EC2)的重要服務(wù)
  • Cloudflare是Rust的重度用戶,DNS、無服務(wù)計(jì)算、網(wǎng)絡(luò)包監(jiān)控等基礎(chǔ)設(shè)施都與Rust密不可分
  • Dropbox的底層存儲(chǔ)服務(wù)完全由Rust重寫,達(dá)到了數(shù)萬PB的規(guī)模
  • Google除了在安卓系統(tǒng)的部分模塊中使用Rust外,還在它最新的操作系統(tǒng)fuchsia中重度使用Rust
  • acebook使用Rust來增強(qiáng)自己的網(wǎng)頁端、移動(dòng)端和API服務(wù)的性能,同時(shí)還寫了Hack編程語言的虛擬機(jī)
  • Microsoft使用Rust為Azure平臺(tái)提供一些組件,其中包括IoT的核心服務(wù)
  • Github和npmjs.com,使用Rust提供高達(dá)每天13億次的npm包下載
  • Rust目前已經(jīng)成為全世界區(qū)塊鏈平臺(tái)的首選開發(fā)語言
  • Tidb,國內(nèi)最有名的開源分布式數(shù)據(jù)庫

開發(fā)者對(duì)Rust的評(píng)價(jià)

@Graydon Hoare:

Rust 是一種采用過去的知識(shí)解決將來的問題的技術(shù)。

@Elon Musk

我是 Rust 粉絲,但我選擇 C/C++。

@wenq1:

給高手增加了自律的工具,給小白降低了造坑的幾率,給招聘增加了難度,給裝X增加了談資。

@beeplin:

Rust 前途無量,將來凡是有內(nèi)存的機(jī)器上一點(diǎn)都會(huì)跑Rust。因?yàn)樯鲜兰o(jì)七十年代 Joan Baez 女神就預(yù)言過:We both know what memories can bring, it can bring diamonds and rust.

女神順便還預(yù)言了 Rust 一定是免費(fèi)的,因?yàn)椋篒f you offer me diamonds and rust, I have already paid.

順便問一下,另一個(gè) Diamonds 語言現(xiàn)在發(fā)明出來沒?期待......

@徐辰

Rust特別適合用來重寫那些讓你不爽的項(xiàng)目,給你換個(gè)姿勢再不爽一次的機(jī)會(huì)。

@feixu

編程語言多的是,沒必要為了一個(gè)排名10之外的語言操心,前十的語言足夠支持人類信息社會(huì)的發(fā)展,再多這是重復(fù)造輪子而已。

寫在最后

Rust是一門現(xiàn)代化的語言,融合了多種語言特性,且應(yīng)用廣泛。在學(xué)習(xí)Rust的過程中,你會(huì)發(fā)現(xiàn)自己編程能力的不足,改正掉這些不足就會(huì)不斷提升自我。卓越的編程語言,可以將優(yōu)秀的設(shè)計(jì)、先進(jìn)的思想、成功的經(jīng)驗(yàn),自然而然地融入其中,使更多的使用者開闊眼界、拓展思路,受益無窮。

無GC、效率高、工程性強(qiáng)、強(qiáng)安全性等特點(diǎn)已經(jīng)得到工程派和學(xué)院派的認(rèn)可,這些令Rust擁有了自己的特色和生存空間,社區(qū)的友善,生態(tài)的快速發(fā)展,大公司的跟進(jìn),都預(yù)示著Rust將有一個(gè)美好未來!

客觀來說,語言只是工具,我們不能神化它,但是可以給它一個(gè)機(jī)會(huì)。隨著Rust語言版本的不斷更迭,也許某一天你會(huì)發(fā)現(xiàn)它才是你的真愛!

責(zé)任編輯:莫奇 來源: 51CTO
相關(guān)推薦

2022-08-31 08:11:08

Rustdeveloperscoding

2015-11-17 08:54:42

語言gorust

2015-11-17 10:00:50

DGORust

2024-12-23 09:38:00

2024-09-25 18:04:05

2024-02-21 09:44:33

Rust前端

2022-01-05 22:54:48

狗狗幣加密貨幣貨幣

2021-08-31 15:56:06

編程技能開發(fā)

2024-07-15 17:01:13

2024-07-12 05:00:00

2023-02-10 15:12:34

特斯拉電動(dòng)汽車

2020-01-10 12:26:05

垃圾郵件機(jī)器人人工智能

2022-03-02 09:49:14

Rust編程語言

2024-01-11 10:36:00

2024-07-12 15:19:36

2013-08-07 14:30:33

微信5.0

2024-01-23 18:50:28

UbuntuRust語言

2021-07-20 15:47:03

人工智能經(jīng)濟(jì)醫(yī)療
點(diǎn)贊
收藏

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