導航:首頁 > 源碼編譯 > 編譯型語言rust

編譯型語言rust

發布時間:2022-07-04 03:43:16

A. 大家如何評價Rust語言

我用rust正在寫一個區塊鏈項目。

如果不熟悉它的機制,很可能會寫得非常啰嗦。
舉個例子Mutex<RefCell<Rc>>> 這種類型多了會讓人崩潰。

c++很多東西被簡化了, 比如拷貝構造函數變成了Copy trait,移動構造函數自帶。 RAII被rust強推(連lock都是).. 想要用內存不安全的操作需要加unsafe。c++那幾個智能指針變成rust的基本類型了。所有的變數都會有一個所有權,不用智能指針的話,只能用引用(rust叫借用),增加了很多限制。指針什麼的很難看到了(寫起來啰嗦)

惡心的生命周期標注,沒有ide很容易被這個煩死。

沒了容器類, 這個習慣c++的要吐槽。

加了很多函數編程的概念。 比如: arr.to_iter().filter(|x| x.age > 20), 還有模式匹配,高階枚舉,但總體沒有scala ocaml這類強大。

完全編譯時, 極少運行時(有類似c++的typeid),要想用類似java的反射機制就不要想了。 泛型和c++一樣, 基本就是一個文本替換(宏)

常用的功能, 如多線程,日誌,文件,網路等都比c++ std和boost好用很多, 但是功能也沒有那麼強大, 不少功能和c一樣直接在系統內核上封裝了一下,寫起來跟c有點像。

完全拋棄面向對象,和go很像,全是struct。這點真心比c++半吊子面向對象強。

比c++方便最多的地方是有一個模塊管理系統,項目的結構都是訂死的(和sbt有點像),靈活性不強。

目前社區不完善,基本上找不到什麼有用的論壇。debug比較痛苦。

總體覺得是c++的閹割版,寫起來很難像c++一樣放得開。小項目會快那麼一點,畢竟不用寫makefile。

B. 買RUST為什麼有兩個要下載

Rust這個是正式服,另外一個是測試服。
Rust的最明顯優勢就是安全。通過語言層面保證了程序的正確性。因此代碼需要遵循Rust的內存管理模型,主要包括所有權系統和類型系統。
Rust是編譯語言,沒有垃圾回收,擁有非常高的性能。

C. rust是前端還是後端

後端。

Rust是一款高級通用語言,而且屬於少有的一款兼顧開發和執行效率的編程語言。Rust結合了腳本語言的語法結構和C語言編譯執行效率,並且具有類似垃圾回收和數據類型及所有權系統等功能,所以可靠性和高性能運行都屬於Rust的特色。

雖然是一個非常年輕的編程語言,但是Rust可以算是最近幾年最流行的編程語言。5月發布的Stack Overflow 2020開發者調查中,Rust被86.1%開發者選擇為「最喜歡」的編程語言,比第二名TypeScript高出近20%。

雖然Rust並不是一個專屬的網路應用開發語言,但是作為一個以安全著稱的編輯語言,實際上是非常適合網路開發的。而且因為是編譯型語言,編譯器也能在過程中就安全穩定的問題作出提醒,作為後端網路開發還是不錯的一個優勢。

Rust的通用庫中已經包含了類似TcpListener這樣的網路通訊庫,可以直接通過調用std : : net 下面的TcpListener來直接監聽Tcp埠,然後再處理Request。這點上與一些腳本型的編程語言比要自由得很多。

Rust作為比較流行的編程語言,也有不少第三方HTTP庫來支持Web開發,可以不用再花時間從底層開發,比較熱門的庫像Hyper或者Tide都是被不少Web開發框架用到的。Rust下Web開發框架也不少,比較熱門的有Rocket、Actix-Web、Tower-web、Warp等等框架。

D. 我為什麼要選擇Rust

你好,很高興為你解答。
專訪資深程序員庄曉立:我為什麼要選擇Rust?
Rust是由Mozilla開發的注重安全、性能和並發性的編程語言。這門語言自推出以來就得到了國內外程序員的大力推崇。Rust聲稱解決了傳統C語言和C++語言幾十年來飽受責難的內存安全問題,同時還保持了極高的運行效率、極深的底層控制、極廣的應用范圍。但在國內有關Rust的學習文檔並不多見,不久前,筆者聯繫上了Rust1.0版本代碼貢獻者庄曉立(精彩博文:為什麼我說Rust是靠譜的編程語言),請他分享Rust語言特性以及學習經驗。
CSDN:你是從什麼時候開始接觸Rust語言的?是什麼地方吸引了你?

庄曉立:我大概從2013年後半年開始深入接觸Rust語言。它居然聲稱解決了傳統C語言和C++語言幾十年來飽受責難的內存安全問題,同時還保持了極高的運行效率、極深的底層控制、極廣的應用范圍。

其ownership機制令人眼前一亮,無虛擬機(VM)、無垃圾收集器(GC)、無運行時(Runtime)、無空指針/野指針/內存越界/緩沖區溢出/段錯誤、無數據競爭(Data Race)……所有這些,都深深地吸引了我——這個十多年以來深受C語言折磨的痛並快樂著的程序員。

CSDN:在你看來,Rust是怎樣的一門語言?它適合開發什麼類型的項目?為何你會說Rust不懼怕任何競爭對手,它既能取代C語言地位;又可挑戰C++市場,還可向Java、Python分一杯羹?與這些語言相比,Rust有哪些優越的特性?

庄曉立:Rust是一門系統編程語言,特別適合開發對CPU和內存佔用十分敏感的系統軟體,例如虛擬機(VM)、容器(Container)、資料庫/游戲/網路伺服器、瀏覽器引擎、模擬器等,而這些向來主要都是C/C++的傳統領地。

此外,Rust在系統底層開發領域,如裸金屬(bare metal)、操作系統(OS)、內核(kernel)、內核模塊(mod)等,也有強勁的實力,足以挑戰此領域的傳統老大C語言。Rust豐富的語言特性、先進的設計理念、便捷的項目管理,令它在上層應用開發中也能大展拳腳,至少在運行性能上比帶VM和GC的語言要更勝一籌。無GC實現內存安全機制、無數據競爭的並發機制、無運行時開銷的抽象機制,是Rust獨特的優越特性。

其他語言很難同時實現這些目標,例如傳統C/C++無法保證內存安全,Java/Python等無法消除運行時開銷。但Rust畢竟還是很年輕的項目,它釋放影響力需要時間,被世人廣泛接受需要時間;它的潛力能否爆發出來,需要時間去檢驗。我們只需耐心等待。

CSDN:Rust在國內有沒有具體的實際使用案例?

庄曉立:因為Rust1.0正式版剛剛發布不足一月,在國內影響力還不大,我們不能苛求它在國內有實際應用案例。但是在國外,一兩年前就已經有OpenDNS和Skylight把Rust應用在生產環境。還有瀏覽器引擎Servo、Rust編譯器和標准庫、項目管理器Cargo等「兩個半大型應用案例」。這些足夠說明Rust語言的成熟和實用。

CSDN:你參與了Rust1.0版本代碼貢獻,目前該版本正式版已經發布,對此你感覺如何?這門語言是否已經達到比較成熟的階段?

庄曉立:我積極參與了Rust語言開源項目,多次貢獻源代碼,曾連續三次出現在Rust官方博客公布的Rust 1.0 alpha、Rust 1.0 beta和Rust 1.0正式版的貢獻者名單中。在Rust 1.0正式版出台的過程中及此前的很長一段時間,開發者付出了極大的努力,確保Rust 1.0正式版在Semver 2.0規范下,務必保持向後兼容性,除非遇到重大Bug不得不修復。

我認為,在1.0正式發布之後,Rust就已經進入了比較成熟的階段。而且,Rust還在快速迭代發展過程中,1.0發布6周後將發布1.1,再6周後將發布1.2,必然會一步一個台階,越來越成熟穩定。

CSDN:除了功能優先順序以外,在你看來,Rust正在朝什麼方向發展?未來的Rust可以期待什麼樣的特性?

庄曉立:Rust一定會沿著「確保內存安全、無運行開銷、高效實用」的既定方向持續發展。在短期內值得期待的語言特性有:動態Drop、偏特化、繼承、改進borrow checker、改進宏和語法擴展。短期內值得期待的其他特性有:增強文件系統API、提供內存申請釋放API、更好地支持Windows和ARM、更快的編譯速度、更方便的二進制分發機制(MUSL)、更實用的工具等等。

CSDN:據我了解,你之前也比較推崇Go語言,為何想到放棄Go轉向Rust?

庄曉立:推崇Go語言還談不上,不過我曾經嘗試努力接受Go語言,2011底年開始我曾經花費將近半年時間深度關注Go開發進程,提了很多具體的改進意見和建議,也曾經多次嘗試貢獻源代碼。後來考慮到Go語言的設計理念跟我偏差太大,其社區也不太友好,慢慢地疏遠了它。我曾經寫過一篇博客《我為什麼放棄Go語言》,談到了很多具體的原因。

CSDN:國內,參與Rust代碼貢獻的開發者多嗎?有核心的人員嗎?有哪些社區在維護Rust?

庄曉立:國內參與Rust代碼貢獻的開發者並不多,但也不少,官方的貢獻者名單中也偶見幾個貌似國人的名字。Rust的核心開發人員基本上都是Mozilla公司的員工,他們專職負責開發維護Rust語言和相關的項目,Rust社區也主要是他們參與組織和管理的。社區人員討論主要集中在GitHub項目主頁RFC/PR/Issue官方、Discuss論壇/IRC、Reddit、HN、StackOverflow等。

E. Rust語言的最新版本說明

Mozilla在2014年10月宣布發布Rust編譯器和工具的0.12版。
0.12版有1900多項變化和bug修正,其中主要包括:重寫了入門文檔(現在叫Rust Guide);繼續提高了包管理器Cargo等。
在2015年1月,發布了Rust-1.0.0-alpha版本。
2015年5月15日,Rust編程語言核心團隊正式宣布發布Rust 1.0版本。
2015年6月25日,Rust發布了1.1版本。同時發布1.2測試版本 編譯速度在1.1版本的基礎上再提升30% 並行編譯又能用了,默認未開啟,如果開啟,還能提升33%的編譯速度(數據來自4核編譯rustc) Cargo性能提升(編譯Servo時啟動速度提升10倍),可在多個package之間共享依賴包緩存 初步支持MSVC(Microsoft Visual C),以後Windows環境中不需要MinGW/MySYS/GCC了 Rust 1.2 穩定版 將在六周之後發布,屆時還將一並發布 1.3 測試版

F. 為什麼我說Rust是靠譜的編程語言

Rust編程語言
Rust(blog)是一門強調安全、並發、高效的系統編程語言。其中四個關鍵詞,系統編程、安全、並發、高效,是Rust語言的核心特徵,也是區別於其他編程語言的首要因素。
Memory safety without garbage collection
Concurrency without data races
Abstraction without overhead
除此之外,我再補充一些關鍵詞,以便讀者更直觀地了解Rust:靜態類型/編譯式語言/靜態編譯/動態編譯、泛型/函數式/面向對象、模式匹配/ADT、DST/Associated Types/閉包(Closures)、Static/Dynamic/Multiple-Dispatch、 沒有虛擬機(VM)、沒有垃圾收集器(GC)、沒有運行時(Runtime)、沒有空指針/野指針/內存越界/緩沖區溢出/段錯誤、沒有數據競爭(Data Race)……
Rust語言具有特性豐富、設計優良、適用范圍廣等諸多優點。
我(Liigo)從2013年底開始正式關注Rust項目,……至今有一年半了。其中有贊有批,有爭有鬧,也有貢獻源碼。本文所寫的是我這些日子以來的所看、所聞、所感。
判斷一門新的編程語言「是否靠譜」,是主觀性很大的課題。Rust語言今日才剛剛發布1.0版本,它的未來發展走向如何,誰也說不清楚,說到底都是猜測。但是直覺告訴我,如果人靠譜、團隊靠譜、技術能力靠譜、態度靠譜、社區靠譜,這個項目在很大程度上就是靠譜的、值得期待的。
謹以此文,獻給我長久期待的 Rust 1.0!

2. 開放、友好、高效的開源社區
相當徹底的開源項目,開放、透明、友好,進度熱火朝天,動作大刀闊斧。這是我第一次親身參與並觀察到的如此大規模的開源編程語言項目的開發過程。(之前也關注過Go語言項目,但其規模要小得多。)
開放源代碼、GitHub/Git在線開發 hub.com/rust-lang/rust
開放系統設計過程,重要設計項目的提出、討論、評估、決策均在線進行(RFCs)
內部決策過程也公開透明,每周發布會議記錄(meetimg-minutes)
公開接受第三方開發者提交的 Pull Requests,必要時還指導開發
有一個核心團隊(the core team)負責項目的發展方向和最終決策
有大量的(超過 1000 人!)第三方開發者給Rust貢獻源代碼、文檔和測試用例
多次將優秀的第三方開發者吸納進入官方開發團隊和核心團隊
多次在世界各地(包括北京)主辦和協辦小型本地開發者見面會

G. Rust語言的介紹

Rust是Mozilla開發的注重安全、性能和並發性的編程語言。

H. 對比 Go 語言,Rust 有什麼優勢和劣勢

我並沒有什麼編程的經驗,覺得編程實在是太復雜了,不喜歡去研究太多,對這個也不怎麼懂,只能說自己是個半吊子,就是所掌握的知識,也是東拼西湊的,朋友和我說點兒,自己去書上看一點兒,只能說根據自己的體驗給出一些體會吧。


其實我覺得什麼代碼啊編程啊這些東西還是比較適合理工的學生去研究,我一看腦袋就大,完全不明白在講什麼。我大概了解的就是這些,語言的話大家可以多方面的去了解,也不是說有缺點就是不好,看配置看個人吧,每個人習慣不一樣,也許有的人用不穩定的還覺得挺好呢,有的人就喜歡比較完美的,在我看來編程這個東西真的是很復雜,會有很多的代碼,這些代碼弄得我自己頭都大了,有的時候還得去惡補一下。

I. rust可以代替javascript嗎

不會取代的。javascript是一種頁面腳本,通過執行程序腳本片段,我們可以對頁面及頁面上的元素進行操作,實現特定的功能與效果。
而Rust是Mozilla開發的注重安全、性能和並發性的編程語言。
創建這個新語言的目的是為了解決一個頑疾:軟體的演進速度大大低於硬體的演進,軟體在語言級別上無法真正利用多核計算帶來的性能提升。Rust是針對多核體系提出的語言,並且吸收一些其他動態語言的重要特性,比如不需要管理內存,比如不會出現Null指針等等。
rust將來有可能取代c或者c++,但是無法撼動javascript在業界的地位。

J. 為什麼Rust這樣的語言還需要C/C++編譯器

需要用 VS 的鏈接器,應該是需要支持 FFI 的原因。Windows 是 Rust 承諾要支持的主要平台之一,這意味著,Rust要有能力和Windows上的靜態庫和動態庫來交互。這時候,MSVC的ABI就是繞不過去的一個問題。可以參考 Rustup 的官方文檔對Windows平台的描述,rust-lang-nursery/rustup.rs。 Windows平台上有兩套ABI,一個是MSVC,一個是MinGW。所以你其實有兩個選擇,要麼安裝 msvc,然後
rustup install stable-x86_64-pc-windows-msvc
要麼安裝 MinGW,然後
rustup install stable-x86_64-pc-windows-gnu
在 Rustup 的文檔上有這么一句話 By default rustup on Windows configures Rust to target the 32-bit MSVC ABI, that is the i686-pc-windows-msvc target triple. 所以,默認安裝的話,你需要安裝 msvc。

閱讀全文

與編譯型語言rust相關的資料

熱點內容
噴油螺桿製冷壓縮機 瀏覽:581
python員工信息登記表 瀏覽:377
高中美術pdf 瀏覽:161
java實現排列 瀏覽:513
javavector的用法 瀏覽:982
osi實現加密的三層 瀏覽:233
大眾寶來原廠中控如何安裝app 瀏覽:916
linux內核根文件系統 瀏覽:243
3d的命令面板不見了 瀏覽:526
武漢理工大學伺服器ip地址 瀏覽:149
亞馬遜雲伺服器登錄 瀏覽:525
安卓手機如何進行文件處理 瀏覽:71
mysql執行系統命令 瀏覽:930
php支持curlhttps 瀏覽:143
新預演算法責任 瀏覽:444
伺服器如何處理5萬人同時在線 瀏覽:251
哈夫曼編碼數據壓縮 瀏覽:428
鎖定伺服器是什麼意思 瀏覽:385
場景檢測演算法 瀏覽:617
解壓手機軟體觸屏 瀏覽:352