衡阳派盒市场营销有限公司

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

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

3天內不再提示

Rust和C++哪個更好入門

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

作為一門系統編程語言,Rust 一直致力于解決高并發和高安全性系統等問題。和老牌的 C++ 相比,Rust 的性能也毫不遜色。但曾幾何時,因為上手難、用戶量少、社區不活躍等諸如問題讓想要入門的開發者感到迷茫,如今新的一年已經開始,我們是否真的有必要學習 Rust?

一些開發人員非常沉迷于 Rust,因為它提供了一些安全措施,如保證內存安全,它在安全代碼里不容許空指針、懸垂指針和數據競爭。并且,Rust 的性能和標準的 C++ 性能不相上下!

Rust 是由 Mozilla 開發人員 Graydon Hoare 在 2006 年開發的個人項目,從那個時候起,該語言就像它所命名的 Rust 真菌一樣,開始傳播,它今天被廣泛應用于構建網絡嵌入式計算機、分布式服務和命令行。

“Rust 的最大優勢在于它是一種賦能技術!”Rust 編程語言核心團隊的 Carol Nichols 說道,他本人還是 The Rust Programming Language 一書的合著者。

“之前,我們只能使用 C 或者 C++ 才能編寫具有較低內存占用空間的高質量代碼。但是,在生產代碼中使用這些語言需要你手動管理內存并了解可能導致未定義行為的所有方法。”

Nichols 指出,不斷擴展的 CVE 代碼漏洞數據庫證明“即使是最優秀的程序員”也疲于應對層出不窮的代碼漏洞。

“為了確保你安全地使用內存,Rust 編譯器非常嚴格,這樣你就可以專注于你真正想要解決的問題。” Nichols 補充到。

除此之外,Rust 還增加了一些高級語言的生命質量特征。

“我喜歡將 Rust 視為高水平的前端,低水平的后端,就編寫 Rust 的經驗而言,我感覺它像是 Ruby、Haskell 和 Scala 的混合。它具有功能性影響,如閉包和迭代器,以及類似于 Haskell 的豐富類型系統。”Nichols 說。

“就使用 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,因此它可以與這個域和其他域中的現有代碼進行集成。”

現在官方渠道提供的 Rust 版本也已經為 Rust 2018 重新設計,包括嵌入式開發的必要功能,減少了開發人員從第三方庫中獲取這些功能的需求。

Rust 可以構建強大的 Web 應用程序

Rust 越來越像是構建 Web 應用程序的不錯選擇之一,其中有些應用程序提供的功能是使用 JavaScript(Web 應用程序常用語言)無法實現的。Rust 可以編譯成 WebAssembly,它以接近原生的速度在每個主要的 Web 瀏覽器中運行。

“WebAssembly 是一個非常有前景的新領域,可以將原生應用程序性能帶入網絡,而且 Rust 已成為編寫編譯為 WebAssembly 的代碼的首選語言。”Nichols 說。

“有一些工具允許你通過 WebAssembly 將 Rust 代碼發送到 npm(JavaScript 包存儲庫),然后透明地向下游用戶發送,還可以通過綁定將 Rust 部署到 Web 上,這允許調用瀏覽器和 JavaScript 本身提供的大多數功能。”Nichols 對此寄予厚望,希望 Rust 可以很快與競爭對手的網絡開發語言相媲美。

“我很高興有一天我們在 Rust 中擁有一個功能齊全的 Web 框架。目前生態系統中已經有很多框架和激動人心的實驗,但是沒有可比的東西,比如 Rails,在 Rust 還沒有。我相信我們很快就用擁有這些功能。”

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

    文章

    1950

    瀏覽量

    34981
  • C++
    C++
    +關注

    關注

    22

    文章

    2114

    瀏覽量

    73855
  • Rust
    +關注

    關注

    1

    文章

    230

    瀏覽量

    6664
收藏 人收藏

    評論

    相關推薦

    C++入門基礎教程大全

    C++入門基礎教程大全 C++是一種面向對象的編程語言,但如果系統沒有采用面向對象的技術,C++只能作為面向過程的語言來使用.
    發表于 05-29 10:25 ?0次下載

    C++ 入門自學教程

    C++ 入門自學教程從入門知識開始講起,比較有利于初學者入門掌握,比較好懂,能夠對C++有一個全面認識
    發表于 11-17 10:36 ?0次下載

    Visual C++編程入門視頻

    Visual C++編程入門視頻!資料來源網絡,如有侵權,敬請見諒
    發表于 11-20 15:10 ?6次下載

    c++入門經典習題集

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

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

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

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

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

    嵌入式程序開發,C語言和C++究竟應該用哪個

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

    大廠對Rust的態度,C++之父回應

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

    Rust在虛幻引擎5中的使用

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

    Chromium正式開始支持Rust

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

    取代C++!微軟用Rust改寫的Win11內核來了

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

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

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

    C++之父新作帶你勾勒現代C++地圖

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

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

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

    [鴻蒙]OpenHarmony4.0的Rust開發

    中集成 Rust 代碼,并最大程度發揮 Rust 和 OpenHarmony 中原有 C/C++ 代碼的交互性,采用 GN 作為統一構建工具,即通過 GN 構建 Rus
    的頭像 發表于 02-26 17:28 ?956次閱讀
    [鴻蒙]OpenHarmony4.0的<b class='flag-5'>Rust</b>開發
    新时代百家乐的玩法技巧和规则| 百家乐网上漏洞| 网络百家乐开户网| 德州扑克单机| 线上百家乐官网可靠吗| 盛大百家乐官网的玩法技巧和规则 | 百家乐全程打庄| 威尼斯人娱乐场钓鱼网站| 皇朝娱乐城| 网络百家乐官网证据| 百家乐牌具公司| 七乐国际| 任我赢百家乐官网软件| 新锦江百家乐赌场娱乐网规则| 金冠娱乐城注册| 百家乐官网网盛世三国| 最新百家乐出千赌具| KK娱乐| 华人百家乐官网博彩论| 威尼斯人娱乐城 活动| 百家乐官网破解的方法| 百家乐官网解密软件| 新锦江百家乐娱乐网| 东方市| 百家乐官网老千| 大发888官网游戏平台| 百家乐官网技术辅助软件| 百家乐斗地主炸金花| 丹棱县| 百家乐官网赌场游戏平台| 闲和庄百家乐的玩法技巧和规则| 百家乐官网软件辅助| 真人百家乐888| 利博娱乐城开户| 百家乐官网高手论| 大发888 dafa888uk.com| 扑克百家乐官网赌器| 全讯网体育| 百家乐官网桌子| 大发888在线娱乐城合作伙伴| 玩百家乐官网免费|