0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Rust和C++哪個更好入門

jf_78858299 ? 來源:CSDN ? 作者:Nick Heath ? 2023-03-17 14:45 ? 次閱讀

作為一門系統(tǒng)編程語言,Rust 一直致力于解決高并發(fā)和高安全性系統(tǒng)等問題。和老牌的 C++ 相比,Rust 的性能也毫不遜色。但曾幾何時,因為上手難、用戶量少、社區(qū)不活躍等諸如問題讓想要入門的開發(fā)者感到迷茫,如今新的一年已經(jīng)開始,我們是否真的有必要學習 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)存使用方面最相似。”

原來 Rust 那么強大!上面這些理由是不是還不足以說服你開始學習 Rust!那么請看下面這七個原因,看完即可開始學習 Rust,切勿錯過好時機!

入門從未如此簡單

“現(xiàn)在是學習 Rust 的好時機,因為剛剛在 12 月 6 日發(fā)布的 2018 年版本對語言編寫進行了大量改進,使得 Rust 更加符合常規(guī)的開發(fā)的編碼習慣”負責改進該版本的 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ù)量相對較少。但是整個搜索量還是超過可用量,越來越多的人正在加入到學習 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ù)器成本并降低運營負擔。

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 幫助確保慣用的代碼風格。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 補充說。

更容易學習

最后,Nichols 評價道,Rust 仍然難以學習和掌握,但最近又增加了許多書籍,包括她與 Steve Klabnik 一起寫的 The Rust Programming Language。從長遠來看,她說有計劃開發(fā)更多初學者學習資源和新的中級水平書籍和教程。

“我們希望每個人都能夠在 Rust 中學習和提高工作效率!”

原文: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)的文章。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 編程語言
    +關(guān)注

    關(guān)注

    10

    文章

    1916

    瀏覽量

    34379
  • C++
    C++
    +關(guān)注

    關(guān)注

    21

    文章

    2085

    瀏覽量

    73302
  • Rust
    +關(guān)注

    關(guān)注

    1

    文章

    226

    瀏覽量

    6497
收藏 人收藏

    評論

    相關(guān)推薦

    C++入門基礎(chǔ)教程大全

    C++入門基礎(chǔ)教程大全 C++是一種面向?qū)ο蟮木幊陶Z言,但如果系統(tǒng)沒有采用面向?qū)ο蟮募夹g(shù),C++只能作為面向過程的語言來使用.
    發(fā)表于 05-29 10:25 ?0次下載

    C++ 入門自學教程

    C++ 入門自學教程從入門知識開始講起,比較有利于初學者入門掌握,比較好懂,能夠?qū)?b class='flag-5'>C++有一個全面認識
    發(fā)表于 11-17 10:36 ?0次下載

    Visual C++編程入門視頻

    Visual C++編程入門視頻!資料來源網(wǎng)絡(luò),如有侵權(quán),敬請見諒
    發(fā)表于 11-20 15:10 ?6次下載

    c++入門經(jīng)典習題集

    讓大家全方位傻瓜式學習大話設(shè)計模式(3.45MB)c++入門經(jīng)典習題集+多年積累的類庫。
    發(fā)表于 07-13 15:11 ?2次下載

    C++入門教程之C++程序設(shè)計的課件資料免費下載

    本文檔的主要內(nèi)容詳細介紹的是C++入門教程之C++程序設(shè)計的課件資料免費下載主要內(nèi)容包括了:1. 認識C++2. C++的現(xiàn)狀和發(fā)展3.
    發(fā)表于 12-07 08:00 ?33次下載
    <b class='flag-5'>C++</b><b class='flag-5'>入門</b>教程之<b class='flag-5'>C++</b>程序設(shè)計的課件資料免費下載

    Chrome團隊將測試驗證RustC++的互操作性

    Chrome 團隊也開始嘗試 Rust 了。在 Chromium 官網(wǎng)近期發(fā)布的文檔中,“RustC++ 的互操作性”作為一項尚待解決的挑戰(zhàn)被提出。
    的頭像 發(fā)表于 08-25 10:35 ?1879次閱讀

    嵌入式程序開發(fā),C語言和C++究竟應(yīng)該用哪個?

    在嵌入式軟件程序開發(fā)中,C語言無疑是最常被使用的程序語言。不過應(yīng)該明白的是,有些嵌入式硬件同時提供C語言程序編譯器以及C++程序編譯器,而相比于C語言,
    發(fā)表于 11-03 14:21 ?60次下載
    嵌入式程序開發(fā),<b class='flag-5'>C</b>語言和<b class='flag-5'>C++</b>究竟應(yīng)該用<b class='flag-5'>哪個</b>?

    大廠對Rust的態(tài)度,C++之父回應(yīng)

    不少開發(fā)者許多開發(fā)者都對 Rust 的過度宣傳感到反感,并表示不同的工具適合不同的問題,不要再過度宣傳某一種編程語言。Rust 很好,但它不是所有問題的解決方案。
    的頭像 發(fā)表于 09-22 11:25 ?1245次閱讀

    Rust在虛幻引擎5中的使用

    前段時間,研究了一套 Rust 接入 Maya Plugin 的玩法,主要原理還是使用 C ABI 去交互。那我想著 UE 是使用 C++ 寫的,肯定也可以使用 C ABI 去交互,如
    的頭像 發(fā)表于 12-21 11:05 ?5627次閱讀

    Chromium正式開始支持Rust

    ? Chromium 正式開始支持 Rust 目前的支持只是第一階段,在C++代碼中使用Rust寫的第三方庫(編譯成.so)。估計明年Chromium的二進制發(fā)行文件中會包含rust
    的頭像 發(fā)表于 01-14 10:04 ?855次閱讀

    取代C++!微軟用Rust改寫的Win11內(nèi)核來了

    按照微軟此前介紹,Rust 語言的優(yōu)勢在于極高的內(nèi)存安全性,原來內(nèi)核中大量的不安全的子例程在改寫后消失不見。同時,Rust 代碼簡潔高效,移植后 Office 應(yīng)用沒有任何性能損失,甚至部分場景比 C++ 運行效率更高。
    的頭像 發(fā)表于 05-19 16:58 ?1306次閱讀
    取代<b class='flag-5'>C++</b>!微軟用<b class='flag-5'>Rust</b>改寫的Win11內(nèi)核來了

    使用C++編寫通用庫并在 Rust 中使用它 (WASI)

    使用 C++ 編寫通用庫并在 Rust 中使用它 (WASI) WebAssembly 簡介 WebAssembly 是一種二進制指令格式,旨在成為一種低級虛擬機,可以在 Web 瀏覽器中以接近本機
    的頭像 發(fā)表于 06-16 10:03 ?904次閱讀
    使用<b class='flag-5'>C++</b>編寫通用庫并在 <b class='flag-5'>Rust</b> 中使用它 (WASI)

    C++之父新作帶你勾勒現(xiàn)代C++地圖

    為了幫助大家解決這些痛點問題,讓大家領(lǐng)略現(xiàn)代C++之美,掌握其中的精髓,更好地使用C++,C++之父Bjarne Stroustrup坐不住了,他親自操刀寫就了這本《
    的頭像 發(fā)表于 10-30 16:35 ?698次閱讀
    <b class='flag-5'>C++</b>之父新作帶你勾勒現(xiàn)代<b class='flag-5'>C++</b>地圖

    谷歌捐款100萬美元給Rust基金會,以增強C++Rust的交互性

    如今,谷歌多項核心業(yè)務(wù)仍以 C++為主要編程語言,雖然無法直接使用Rust替代現(xiàn)有的C++程序,但谷歌依然選擇支持Rust基金會的“Interop Initiative”計劃,幫助那些
    的頭像 發(fā)表于 02-19 15:41 ?470次閱讀

    [鴻蒙]OpenHarmony4.0的Rust開發(fā)

    中集成 Rust 代碼,并最大程度發(fā)揮 Rust 和 OpenHarmony 中原有 C/C++ 代碼的交互性,采用 GN 作為統(tǒng)一構(gòu)建工具,即通過 GN 構(gòu)建 Rus
    的頭像 發(fā)表于 02-26 17:28 ?660次閱讀
    [鴻蒙]OpenHarmony4.0的<b class='flag-5'>Rust</b>開發(fā)