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