作為一門系統(tǒng)編程語言,Rust 一直致力于解決高并發(fā)和高安全性系統(tǒng)等問題。和老牌的 C++ 相比,Rust 的性能也毫不遜色。但曾幾何時,因為上手難、用戶量少、社區(qū)不活躍等諸如問題讓想要入門的開發(fā)者感到迷茫,如今新的一年已經(jīng)開始,我們是否真的有必要學(xué)習(xí) Rust?
一些開發(fā)人員非常沉迷于 Rust,因為它提供了一些安全措施,如保證內(nèi)存安全,它在安全代碼里不容許空指針、懸垂指針和數(shù)據(jù)競爭。并且,Rust 的性能和標準的 C++ 性能不相上下!
Rust 是由 Mozilla 開發(fā)人員 Graydon Hoare 在 2006 年開發(fā)的個人項目,從那個時候起,該語言就像它所命名的 Rust 真菌一樣,開始傳播,它今天被廣泛應(yīng)用于構(gòu)建網(wǎng)絡(luò)、嵌入式計算機、分布式服務(wù)和命令行。
“Rust 的最大優(yōu)勢在于它是一種賦能技術(shù)!”Rust 編程語言核心團隊的 Carol Nichols 說道,他本人還是 The Rust Programming Language 一書的合著者。
“之前,我們只能使用 C 或者 C++ 才能編寫具有較低內(nèi)存占用空間的高質(zhì)量代碼。但是,在生產(chǎn)代碼中使用這些語言需要你手動管理內(nèi)存并了解可能導(dǎo)致未定義行為的所有方法?!?/p>
Nichols 指出,不斷擴展的 CVE 代碼漏洞數(shù)據(jù)庫證明“即使是最優(yōu)秀的程序員”也疲于應(yīng)對層出不窮的代碼漏洞。
“為了確保你安全地使用內(nèi)存,Rust 編譯器非常嚴格,這樣你就可以專注于你真正想要解決的問題?!?Nichols 補充到。
除此之外,Rust 還增加了一些高級語言的生命質(zhì)量特征。
“我喜歡將 Rust 視為高水平的前端,低水平的后端,就編寫 Rust 的經(jīng)驗而言,我感覺它像是 Ruby、Haskell 和 Scala 的混合。它具有功能性影響,如閉包和迭代器,以及類似于 Haskell 的豐富類型系統(tǒng)?!盢ichols 說。
“就使用 Rust 創(chuàng)建的程序而言,它們與使用 C 和 C ++ 創(chuàng)建的程序在速度和內(nèi)存使用方面最相似?!?/p>
原來 Rust 那么強大!上面這些理由是不是還不足以說服你開始學(xué)習(xí) Rust!那么請看下面這七個原因,看完即可開始學(xué)習(xí) Rust,切勿錯過好時機!
入門從未如此簡單
“現(xiàn)在是學(xué)習(xí) Rust 的好時機,因為剛剛在 12 月 6 日發(fā)布的 2018 年版本對語言編寫進行了大量改進,使得 Rust 更加符合常規(guī)的開發(fā)的編碼習(xí)慣”負責(zé)改進該版本的 Nichols 說到。
Rust 的用戶群正在增長
現(xiàn)在已經(jīng)有數(shù)百家公司在軟件生產(chǎn)中使用 Rust,例如 Dropbox、Yelp 和Cloudflare,類似像亞馬遜最近宣布的虛擬化技術(shù) Firecracker 這樣的產(chǎn)品也正在與 Rust 一起創(chuàng)建。
不得不承認的是,Rust 的使用還處于早期階段,雇主們目前并不急于提高自己公司技術(shù)人員的 Rust 技能,去年在全球吃香的編程語言還是哪些最頂尖的技術(shù)語言。然而,Indeed 的高級副總裁 Raj Mukherjee 表示,有跡象顯示雇主開始對 Rust 產(chǎn)生興趣?!拔覀冮_始看到編程語言 Rust 出現(xiàn)在招聘廣告中,盡管全球職位空缺數(shù)量相對較少。但是整個搜索量還是超過可用量,越來越多的人正在加入到學(xué)習(xí) Rust 語言的行列中?!彼f。
Rust 的低開銷非常適合嵌入式編程
在家用電器和工業(yè)機器等非常低功耗的嵌入式系統(tǒng)上編寫軟件并運行是一項極具挑戰(zhàn)性的工作。Nichols 說,Rust 非常低的開銷使其非常適合在這些微控制器的極其受限的資源上運行,Rust 是極少數(shù)適用于在極低資源環(huán)境下運行的少數(shù)現(xiàn)代編程語言之一。
“將 Rust 交叉編譯到各種嵌入式設(shè)備有很多很棒的工具,Rust 還支持 C FFI,因此它可以與這個域和其他域中的現(xiàn)有代碼進行集成?!?/p>
現(xiàn)在官方渠道提供的 Rust 版本也已經(jīng)為 Rust 2018 重新設(shè)計,包括嵌入式開發(fā)的必要功能,減少了開發(fā)人員從第三方庫中獲取這些功能的需求。
Rust 可以構(gòu)建強大的 Web 應(yīng)用程序
Rust 越來越像是構(gòu)建 Web 應(yīng)用程序的不錯選擇之一,其中有些應(yīng)用程序提供的功能是使用 JavaScript(Web 應(yīng)用程序常用語言)無法實現(xiàn)的。Rust 可以編譯成 WebAssembly,它以接近原生的速度在每個主要的 Web 瀏覽器中運行。
“WebAssembly 是一個非常有前景的新領(lǐng)域,可以將原生應(yīng)用程序性能帶入網(wǎng)絡(luò),而且 Rust 已成為編寫編譯為 WebAssembly 的代碼的首選語言?!盢ichols 說。
“有一些工具允許你通過 WebAssembly 將 Rust 代碼發(fā)送到 npm(JavaScript 包存儲庫),然后透明地向下游用戶發(fā)送,還可以通過綁定將 Rust 部署到 Web 上,這允許調(diào)用瀏覽器和 JavaScript 本身提供的大多數(shù)功能。”Nichols 對此寄予厚望,希望 Rust 可以很快與競爭對手的網(wǎng)絡(luò)開發(fā)語言相媲美。
“我很高興有一天我們在 Rust 中擁有一個功能齊全的 Web 框架。目前生態(tài)系統(tǒng)中已經(jīng)有很多框架和激動人心的實驗,但是沒有可比的東西,比如 Rails,在 Rust 還沒有。我相信我們很快就用擁有這些功能?!?/p>
Rust 適用于構(gòu)建分布式在線服務(wù)
Nichols 表示對于網(wǎng)絡(luò)服務(wù) Rust 可以使用最少資源來確保跨多個線程的內(nèi)存安全的能力使其成為在線分布式系統(tǒng)擴展的服務(wù)的絕佳選擇。同時 Rust 還使得編寫泄漏內(nèi)存或其他資源的代碼變得更加困難,這些方面可以降低服務(wù)器成本并降低運營負擔(dān)。
Rust 從不同的在線服務(wù)中提取數(shù)據(jù)很快并且很容易,因為它實現(xiàn)了對 async / await 命令的支持,這將使得編寫在等待數(shù)據(jù)傳遞時不會掛起的異步代碼變得更加容易。
Rust 適合創(chuàng)建功能強大的跨平臺命令行工具
跨平臺命令行應(yīng)用程序是 Rust 真正閃耀的一個地方。你可以交叉編譯到你所針對的平臺,并獲得一個二進制文件發(fā)送給用戶。.Ripgrep 是一個很好的例子:它是在 Windows、Linux 和 macOS 上運行的 grep 重新實現(xiàn)的 grep,并且比同類中的任何其他文本搜索工具。
Rust 擁有新的開發(fā)工具和更好的 IDE 支持
現(xiàn)在一系列開發(fā)工具都已變得不可用了,其中包括 Rustfmt,一種基于默認代碼樣式自動格式化代碼的工具;Clippy 幫助確保慣用的代碼風(fēng)格。Rust 用于突出潛在錯誤的內(nèi)容,同時可以通過 Rust 語言服務(wù)器和 IntelliJ Rust 在 IDE 中提供支持。
現(xiàn)有工具也得到了改進,例如借助檢查器確保代碼內(nèi)存的安全,如果變量使用該數(shù)據(jù)完成,它將不會阻止其他使用者使用數(shù)據(jù)。
Rust 將在 2019 年作出哪些改善?
編譯時間更快
Nichols 說,將 Rust 代碼編譯到軟件所需的時間仍然“比我們想要的要慢”。有一些關(guān)于漸進式編譯的工作已經(jīng)在一定程度上改善了這種情況,并且一直在進行的重構(gòu)工作應(yīng)該會在不久的將來取得進一步的改進。
Rust 2018 最近的改進-通過多種方法(包括漸進式編譯)更快地重新編譯,其中編譯器僅重新編譯已更改的部分代碼。
更好地選擇軟件庫
雖然 Nichols 說社區(qū)建立的軟件庫(稱為“crates”)的生態(tài)系統(tǒng)自 2015 年 Rust 1.0 以來已經(jīng)擴展了很多,但其表示開發(fā)人員可能仍然無法找到他們正在尋找的功能的庫。
“在某些情況下可能會有一個庫,但它不完整或者不那么成熟,因為它需要在生產(chǎn)中使用。我們有各種各樣的工作小組已經(jīng)正在投資我們的生態(tài)系統(tǒng)并在編譯器本身之外進行改進,我們很可能在未來一年需要有更多的工作小組?!?Nichols 補充說。
更容易學(xué)習(xí)
最后,Nichols 評價道,Rust 仍然難以學(xué)習(xí)和掌握,但最近又增加了許多書籍,包括她與 Steve Klabnik 一起寫的 The Rust Programming Language。從長遠來看,她說有計劃開發(fā)更多初學(xué)者學(xué)習(xí)資源和新的中級水平書籍和教程。
“我們希望每個人都能夠在 Rust 中學(xué)習(xí)和提高工作效率!”
原文:https://www.techrepublic.com/article/rust-programming-language-seven-reasons-why-you-should-learn-it-in-2019/
作者:Nick Heath 是 TechRepublic 的首席記者。他撰寫了關(guān)于 IT 決策者需要了解的技術(shù)以及歐洲科技領(lǐng)域最新動態(tài)的文章。
-
編程語言
+關(guān)注
關(guān)注
10文章
1922瀏覽量
34510 -
C++
+關(guān)注
關(guān)注
21文章
2090瀏覽量
73410 -
Rust
+關(guān)注
關(guān)注
1文章
228瀏覽量
6528
發(fā)布評論請先 登錄
相關(guān)推薦
評論