全面認識 RUST -- 掌控未來的雷電

      網(wǎng)友投稿 861 2025-03-31

      文章目錄

      Rust 簡介

      如何衡量語言的好壞?

      靜態(tài)語言

      編譯器

      語言定位

      代表性項目

      Hello World

      Rust 前景

      RUST 簡介

      Rust 是一種兼顧內(nèi)存安全、高并發(fā)和穩(wěn)定運行的編程語言。它有著驚人的運行速度(有些領域甚至超過 C/C++),能夠防止運行錯誤,并保證線程安全。RUST 語言使每個人都能夠構(gòu)建可靠、高效的軟件。

      如何衡量語言的好壞?

      在編程領域,人們通常從以下幾個方面判斷語言的 [好壞] :

      性能

      生產(chǎn)率

      可靠性

      性能:RUST 在這幾個方面做得都不錯,甚至超過同類語。RUST 沒有 Runtime 和 GC,即 RUST 沒有運行時,也不用垃圾回收。這使得它的運行速度非常快,并且很省內(nèi)存。

      生產(chǎn)率:不得不說,RUST 的文檔寫得很好。出色的文檔和友好的編譯器、一流的包管理器和構(gòu)建工具、精準的錯誤提示,這些都是 RUST 為開發(fā)者準備好的,我們只需要將精力放在邏輯上即可。

      可靠性:RUST 的編譯器很嚴格,它幾乎不允許任何不可控的因素存在。它會在編譯時為你檢查語法、變量、所有權(quán)等內(nèi)容,避免程序在運行中發(fā)生故障。

      RUST 的可靠性真的很強,這并不是吹的。嚴格的編譯器將因患扼殺在萌芽時期,一旦編譯通過,那么你的程序?qū)⒆兊梅浅7€(wěn)定(社區(qū)討論到,編譯通過后的程序穩(wěn)定性在 90% 以)。

      靜態(tài)語言

      RUST 是一門靜態(tài)語言,這也是它運行速度如此快的原因之一。在遇到 RUST 之前,我是一名 PYTHON 開發(fā)者。PYTHON 最讓人詬病的莫過于速度,無論是 WEB 、網(wǎng)絡還是程序執(zhí)行方面,都讓人感到難過。動態(tài)語言的優(yōu)勢是靈活、簡短和足夠快的開發(fā)速度。靜態(tài)語言的優(yōu)勢則是運行速度,為此,我們必須犧牲開發(fā)速度(當你熟悉之后,其實開發(fā)速度也不會差到哪里去)。

      編譯器

      與 PYTHON 這種動態(tài)語不同,RUST 程序在運行前必須進行編譯,編譯完成后才能夠運行。RUST 的編譯器是 LLVM(底層虛擬機 Low-Level Virtual Machine),同樣使用 LLVM 作為編譯器的開發(fā)語言還有 Swift。

      語言定位

      每一門語言都應該有自己的定位,雖然最終的結(jié)果和開發(fā)團隊預想的不同。PYTHON 如今被應用在互聯(lián)網(wǎng)各個領域,如爬蟲、WEB、深度學習、軟件開發(fā)等,雖然 WEB 領域有 JAVA、PHP 和 GO 這樣的強勁對手,但使用 Django、Flask 和 Tornado 的開發(fā)者仍然不少。

      我是一名職業(yè)爬蟲工程師,所以爬蟲領域的事我比較清楚,PYTHON 在爬蟲領域幾乎沒有對手,這個領域排名第二的應該是 JAVA,其次是 GO 語言。爬蟲是多變的,爬蟲工程師經(jīng)常改動它們的代碼,從開發(fā)效率和開發(fā)時間方面來說,沒有什么語言比 PYTHON 更省事。爬蟲爬取過程并不追求超高的速度,太快的話會導致目標網(wǎng)站拒絕訪問(大量垃流量是不道德的行為),如果影響網(wǎng)站運行,那么就會將自己處于法律邊緣。還有一點, PYTHON 庫非常多,很多東西伸手就用,根本不需要耗費時間去造輪子。綜合考慮來說,爬蟲領域還真的是 PYTHON 更合適一些。

      由于 PYTHON 豐富的生態(tài)和極簡的代風格,使它成為深度學習的首選。PYTHON 占據(jù)著深度學習的大半江,這點是其他語言難以撼動的。

      軟件開發(fā)領域,常年以來都被 C# 和 C++ 占據(jù),系統(tǒng)層面則是 C 和 C++,其他語言根本沒有參與的能力(相對于 C++ 和 C ?來說,GO PYTHON NODEJS JAVA 這些語言太弱了)。

      RUST 能做什么呢?適合做什么呢?

      RUST 語言對標的是 C 和 C++,但它還具備了抗衡 GO 語言的能力,在深度學習和爬蟲領域也有一定的機會。RUST 被視為 [系統(tǒng)級] 語言,它能夠開發(fā)出穩(wěn)定性超強、運行速度極快的項目。能夠成為系統(tǒng)級編程語言,是因為它無 GC 和 Runtime,它超強的穩(wěn)定性來源于所有權(quán)。

      有實際案例證明,RUST 將會成為下一代操作系統(tǒng)的開發(fā)語言。火狐用它編寫了一個名為 Redox 的類UNIX 操作系統(tǒng)。系統(tǒng)界面如下:

      C++ 一直是游戲和高性能軟件的首選,但很多開發(fā)者都會遇到內(nèi)存(C 語言也有,如懸垂指針)方面的問題。RUST 嚴格的編譯器和良好的設計使它規(guī)避了這些問題,它并不會出現(xiàn)內(nèi)存安全方面的故障。并且,由于 RUST 和 C++、C 一樣,都是無 GC 和 Runtime 的編程語言,也同為靜態(tài)語言,所以它能夠扮演 C 和 C++ 的角色,甚至還有些優(yōu)勢。

      在 WEB 領域,現(xiàn)在 GO 語言火得一塌糊涂。這得益于它的運行速度和開發(fā)效率——它既有 JAVA 的運行速度,有又堪比 PYTHON 的開發(fā)效率,而且它在高并發(fā)場景的處理能力高過 PYTHON 等語言。這些因素綜合在一起,使它成為如今 WEB 開發(fā)的首選。RUST 的運行速度和高并發(fā)處理能力只會比 GO 更強,但開發(fā)效率方面卻無法保證(語法方面其實也還可以,但由于編譯器的嚴格要求,使得開發(fā)效率不高)。

      有人用 RUST 代替 GO 了嗎?當然有,不然我也不會拋出這個話題,請看:

      TiDB 團隊使用 RUST 來構(gòu)建 TiKV 產(chǎn)品,團隊開發(fā)人員在 RUST 大會上有談論過 RUST 與 GO 的選擇。在綜合因素的考慮下,他們最后選擇了 RUST。

      一些區(qū)塊鏈項目正在/已經(jīng)從 GO ?專為 RUST,不為別的,安全。

      深度學習方面,Tensorflow 已經(jīng)支持 RUST 了。如果這還不能說明什么,那么我們可以從速度上考慮這個問題。神經(jīng)網(wǎng)絡的發(fā)展很迅速,而且層級越來越深,還有不斷加深的趨勢。我對圖像識別和卷積有一些了解,卷積通過不斷的計算圖片像素張量得出特征。程序不斷的迭代圖像,直到獲得 [合適] 的特征,這個過程其是計算的過程。目前來說,GPU 的計算能力比 CPU 要高,所以計算方面都由 GPU 完成,而不是 編程語言。但是程序本身的運行速度是整體效率的一個部分,所以 RUST 有可能被用來處理那些耗時的工作。(深度學習領域的生態(tài)肯定趕不上 PYTHON,不要想了)。

      全面認識 RUST -- 掌控未來的雷電

      爬蟲領域,爬蟲不單單是網(wǎng)絡請求和文解析的問題,它是綜合技術(shù)的應用。程序運行速度并不是硬需求,但每個爬蟲工程師都希望 PYTHON 的運行速度再提升一個等級(事實上,大部分 PYTHON 開發(fā)者都希望 PYTHON 和 C 一樣快)。所以,如果 RUST 降低網(wǎng)絡請求和文本解析的門檻,我認為它也會吸引一部分使用 PYHTON 的爬蟲工程。我就是這么被吸引過來的,我要造幾個輪子(網(wǎng)絡請求文本解析方面的輪子)。

      代表性項目

      新的語言,如果沒有代表性項目,那么就很難斬露頭角。當然,如果有 Google 這樣的大公司推動,事情就會完全不一樣(參考 GO 和 Flutter)。但 GO 語言已經(jīng)有了足夠強大的產(chǎn)品作為證明,比如 Docker、七牛云存儲、TiDB 和 Kubernetes。

      RUST 生于火狐,由火狐研發(fā)人員和 RUST 社區(qū)維護。目前來說,RUST 還未出現(xiàn)類似于 Docker 或 Kubernetes 這樣的流行項目,但 RUST 在一些領域已經(jīng)有了大的邁步,如:

      Redox - 類 UNIX 操作系統(tǒng)。

      Servo - 火狐新一代瀏覽器引擎。

      TiKV - 分布式的 KV 系統(tǒng)。

      并且,很多大企業(yè)都在嘗試將 RUST 融入到生產(chǎn)中。我相信在未來幾年,RUST 肯定會大放異彩。

      Hello World

      之前提到過,RUST 文檔很友好,我們可以通過一個案例了解 RUST。

      在開始之前,我們需要下載并安裝 RUST 語言。根據(jù)官網(wǎng)文檔教程(如果大家不習慣看英文文檔,可以到 RUST 中文站查看教程,以下為 Linux 環(huán)境下的安裝,Window 環(huán)境安裝以教程為準)的提示,我們在終端運行以下命令:

      curl?https://sh.rustup.rs?-sSf?|?sh?復制代碼

      即可完成 RUST 的下載,并安裝 RUST。這會安裝最新穩(wěn)定版 Rust。過程中可能會提示你輸入密碼。如果安裝成功,將會出現(xiàn)如下內(nèi)容:

      Rust?is?installed?now.?Great!?復制代碼

      然后配置環(huán)境變量,在 ~/.bash_profile 文件中增加如下內(nèi)容:

      $?export?PATH="$HOME/.cargo/bin:$PATH"?復制代碼

      配置保存后,使用命令讓其立生效:

      $?source?~/.bashrc?復制代碼

      一切準備就緒后,我們就可以開始編寫代碼了。新建名為 hello.rs 的文件,并將以下內(nèi)容寫入 hello.rs:

      fn?main()?{?????println!("Hello,?world!");?}?復制代碼

      代碼編寫完成后,需要進行編譯,才能運行。在終端執(zhí)行以下命令:

      $?rustc?hello.rs?$?./hello?復制代碼

      如果看到終端輸出 Hello, world! 則代表程序運行成功。

      你已經(jīng)正式編寫了一個 Rust 程序,成為一名 Rust 程序員,歡迎!

      RUST 前景

      花里胡哨的語言我們見得多了,它們既不安全又慢。多年來,沒有任何語言能夠撼 C/C++ 的地位,RUST 的出現(xiàn)使得編程界有了新的氧氣。作為一名從事爬蟲工作的開發(fā)者(接觸的技術(shù)較多),我認為編程語言 [快] 是趨勢,靜態(tài)語言是未來。我很喜歡 PYTHON,它的語法簡潔、開發(fā)效率超高。但不得不承認,我從心底里希望 PYTHON 變得更快,但動態(tài)語言出身的它決定了它速度的上限,所以我將目標轉(zhuǎn)投到 RUST 上。GO 語言非常優(yōu)秀,生態(tài)也很好,但我看好 RUST 而不是 GO 的理由是:RUST NO GC NO RUNTIME,SAFTY。

      這使得 RUST 必將成為未來掌控雷電的語言,尤其是 Redox 的出現(xiàn),使我更加堅信 RUST 的未來。

      https://juejin.im/post/5cfffc386fb9a07ea71307c3

      Go Python

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔相應法律責任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網(wǎng)站將在24小時內(nèi)刪除侵權(quán)內(nèi)容。

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔相應法律責任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網(wǎng)站將在24小時內(nèi)刪除侵權(quán)內(nèi)容。

      上一篇:生產(chǎn)執(zhí)行制造MES系統(tǒng),提高生產(chǎn)效率的關鍵
      下一篇:PPT背景音樂如何發(fā)送給別人也有(如何幾張ppt共用一個背景音樂)
      相關文章
      亚洲AV无码一区二区三区电影| 亚洲精品高清国产麻豆专区| 激情内射亚洲一区二区三区| 国产亚洲精品岁国产微拍精品| 全亚洲最新黄色特级网站| 亚洲成_人网站图片| 亚洲国产日韩视频观看| 亚洲一区二区三区免费观看| 亚洲国产精品成人综合久久久 | 国产亚洲精品精品精品| 久久亚洲中文字幕无码| 亚洲AV无码国产一区二区三区| 亚洲国产成人久久精品大牛影视| 亚洲欧美国产日韩av野草社区| 亚洲AV无码精品国产成人| 亚洲日韩在线中文字幕综合| 久久精品国产亚洲AV电影网| 久久精品国产亚洲AV电影网| 亚洲AV无码乱码精品国产| 亚洲精品高清在线| 一本久久a久久精品亚洲| 国精无码欧精品亚洲一区| 亚洲AV无码专区电影在线观看 | 亚洲一区二区成人| 亚洲毛片免费视频| 亚洲国产成人久久三区| 国产精品久久亚洲不卡动漫| 亚洲无码一区二区三区| 精品国产日韩亚洲一区在线 | 亚洲色偷偷狠狠综合网| 亚洲日韩中文在线精品第一| 亚洲人成网亚洲欧洲无码久久 | 亚洲精品成a人在线观看夫| 国产精品国产亚洲区艳妇糸列短篇 | 亚洲精品无码人妻无码| 亚洲av午夜成人片精品电影| 国产亚洲精午夜久久久久久| 亚洲av色福利天堂| 亚洲中文字幕久在线| 亚洲AV日韩AV无码污污网站| 亚洲男人天堂2020|