chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

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

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

3天內不再提示

為什么Rust連續(xù)4年獲“最受喜愛編程語言”?

WpOh_rgznai100 ? 來源:YXQ ? 2019-05-29 10:28 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

2015年5月15日,Rust編程語言核心團隊正式宣布發(fā)布Rust 1.0版本。

4年來,它優(yōu)雅的解決高并發(fā)和高安全性系統(tǒng)問題的能力,受到了越來越多開發(fā)者的喜愛。并且連續(xù)4年,在Stack Overflow開發(fā)者「最受喜愛編程語言」評選中獲得第一名。

近來,越來越多的著名區(qū)塊鏈項目已經選擇使用Rust作為其開發(fā)語言,包括:Parity、Polkadot、Substrate、Grin、Ethereum經典、Holochain、Cardano-Rust、Exonum、Lighthouse、Nimiq、Nervos、Conflux-Rust、Codechain、Witnet等眾多知名度較高的項目。

本文試圖探討這一種趨勢出現(xiàn)背后的原因。并且系統(tǒng)的講解Rust語言對于區(qū)塊鏈開發(fā)的影響和其優(yōu)勢。

Rust:一個安全和并發(fā)的軟件系統(tǒng)

Rust 是一門系統(tǒng)級編程語言,被設計為保證內存和線程安全,防止段錯誤產生。

作為系統(tǒng)級編程語言,它的基本理念是 “零開銷抽象”。理論上來說,它的速度與 C / C++ 同級。Rust 可以被歸為通用的、多范式、編譯型的編程語言,類似 C/C++。

與這兩門編程語言不同的是,Rust 是線程安全的!它的目標是,創(chuàng)建一個安全和并發(fā)的軟件系統(tǒng)。Rust強調安全性、并發(fā)和內存控制。盡管 Rust 借用了 C/C++ 的語法,卻杜絕了空指針和懸掛指針,而這二者是 C/C++ 中系統(tǒng)崩潰、內存泄露和不安全代碼的根源。

雖然 Rust 是一門系統(tǒng)級編程語言,但并不意味著它只能寫底層程序(操作系統(tǒng)、驅動、工具、數(shù)據(jù)庫、搜索引擎等),它的抽象層次之高完全給人驚艷的感覺,實踐證明它對問題建模的能力和方便性不比 C++/Java/Python/Ruby 差。

但 Haskell 這類超高抽象語言,也不是 Rust 的發(fā)展方向。Rust 力求在抽象與現(xiàn)實世界中找到一個平衡。

目前,Rust 已經在 StackOverflow 的年度語言評選中,連續(xù) 4 年榮獲“程序員最喜愛語言”第一名。

Rust語言的歷史

Rust 最早是 Mozilla 雇員 Graydon Hoare 的一個個人項目,從 2009 年開始,得到了 Mozilla 研究院的支助,2010 年項目對外公布。

2010 ~2011 年間實現(xiàn)的自舉。從此以后,Rust 經歷了巨大的設計變化和反復(歷程極其艱辛),終于在 2015 年 5 月 15日發(fā)布了 1.0 版。

在這個研發(fā)過程中,Rust 建立了一個強大活躍的社區(qū),形成了一整套完善穩(wěn)定的項目貢獻機制(這是真正的可怕之處)。Rust 現(xiàn)在由 Rust 項目開發(fā)者社區(qū)維護。

下圖描述了Rust的基因圖譜:

Rust仍是小眾語言

Rust從1.0算起,到目前(2019年5月)為止,已有長足的發(fā)展。但整體而言,比起,Python、C、C++ 等,Rust 的使用并不算特別廣泛(畢竟太年輕)。

調查顯示,Rust 使用率不高的很大一部分原因是選擇 Rust 的公司占少數(shù)。

不過,Rust 在工作中的占比卻越來越高。過去一年間,Rust 在商業(yè)應用上有著令人驚訝的成長。包括一些人們耳熟能詳?shù)墓荆?/p>

亞馬遜:用 Rust 構建工具;

Facebook:源代碼控制工具;

Google:作為 Fuchsia 項目的一部分;

微軟:在新的 Azure 物聯(lián)網框架中部分使用 Rust;

Twitter:用 Rust 作為構建團隊支持的一部分。

國內的百度、阿里,也已經在內部小范圍的使用上了Rust。相信,隨著更多公司對 Rust 的選擇,Rust 的成長速度將更加迅猛。

Gavin Wood把Rust帶進區(qū)塊鏈

第一個將Rust應用于著名區(qū)塊鏈項目的應該是大名鼎鼎的Gavin Wood。Gavin Wood 博士在 2015 年下半年離開了以太坊社區(qū),創(chuàng)立了 Parity Technologies,推出以太坊(Ethereum)客戶端 Parity,成功占領以太坊社區(qū)的半壁江山。而這個Parity客戶端就是使用Rust寫的。

實際在 Parity 出現(xiàn)之前,MaidSafe項目就已經出現(xiàn)了。MaidSafe用 Rust 語言嘗試了很多東西。Rust語言本身強調的安全性以及MaidSafe這些前沿項目,可能給了 Gavin 充分的理由選擇 Rust 作為 parity 開發(fā)語言。

Rust本身的語言特性(安全、高性能、并發(fā)編程)與區(qū)塊鏈的特性(分布式、加密、安全敏感)天生有相當大的重合性。

不僅如此,Rust作為一個編程語言顯得不同,不是因為它的語法多么漂亮(實際有些人甚至覺得有點丑)或者社區(qū)多么受人歡迎,而是因為當用它寫代碼時獲得的那種信心。

看起來Rust會影響你寫代碼的的效率和表達力,但令人相當驚奇的是,結論完全相反:寫一個有效率的、符合習慣的Rust程序比寫一個有潛在危險的程序容易得多。

下面是Linux內核在2018年一月到四月期間發(fā)現(xiàn)的Bug:

而對于Rust而言,上圖右側占比 51% 的部分,從語言層面就可以避免。也就是說,對Rust來說,根本不存在上圖右邊這些問題。

目前有兩種觀點:“一個人只需要知道如何寫C” 和 “只需要把最底層的東西留給專業(yè)人士”,這兩種觀點都是不夠的。Linux內核是由強中強的程序員寫的,可能是工業(yè)界最前面的5%的程序員,但是,仍然,年復一年地搞出 CVE 來。

你有可能會覺得幾百萬行代碼中出現(xiàn)50個bug不算什么。但在一些關鍵領域,出bug就意味著系統(tǒng)性風險(如,心臟起博器中的bug會導致生命危險)。而且,這50個bug是我們已經找到的,誰知道我們還有多少個bug還沒找到?而用了Rust,我們可以事先知道答案。

厲害的是,Rust在實現(xiàn)內存安全和并發(fā)安全的同時,并沒有以損失性能為代價。更牛逼的是,它甚至是用同一套抽象解決了內存安全和數(shù)據(jù)競爭這兩個不同領域的問題。

Rust的零開銷抽象讓你在享受安全性的同時,又不損失性能。這正是傳統(tǒng)的程序員夢寐以求的。

以Parity為例,Parity使用Rust,正是因為用Rust寫復雜和高性能的代碼時,不用擔驚受怕。用Rust寫程序,遠離未定義行為、數(shù)據(jù)競爭和內存安全問題。更別說,Rust運行速度快,寫起來有趣,易讀,還幾乎沒有運行時。

內存安全問題如此困難,因為你無法容易地寫出測試來捕獲它們。如果你在beta階段之前沒有找出bug,那么這個bug就可能會在代碼中呆幾年,就像一個讀秒的定時炸彈。當然,也有Valgrind這類的工具,來輔助你捕獲這些bug。但是如果在執(zhí)行時,沒有觸發(fā)內存問題,或這類工具生成的代碼在運行時,沒有執(zhí)行,那么它們也捕獲不到。

所以,通過使用Rust,我們消除了一大類最復雜和最不可預測的錯誤。

Rust中內嵌了形式化證明理論,不過僅限于對內存安全和并發(fā)。Rust在內部用邏輯證明了你的程序是正確的。這也就是你為什么寫Rust代碼會寫得如此有信心的原因。你的每一次編譯,都有一組數(shù)學理論在為你提供證明服務。

在很長一段時間內,像Haskell這種函數(shù)式編程語言的一大殺手級特性就是可以比較容易地進行形式化證明,而這對于傳統(tǒng)的命令式編程語言是不可能的(因為有共享可變性,不安全的指針運算,和不可控的副作用)。

但Rust的出現(xiàn),改變了這種情況,作為一個命令式語言,它卻走在被證明的路上。到目前為止,標準庫的一部分已經被證明是正確的。

那些用Rust開發(fā)的知名區(qū)塊鏈項目

parity

說起知名的用Rust寫的區(qū)塊鏈項目,Parity首當其沖。Parity是一個以太坊節(jié)點客戶端parity-ethereum。

Parity Technologies 是他們公司的名稱?,F(xiàn)在 Parity 旗下已經包含了一套客戶端和各種庫,包括:

parity-ethereum;

parity-zcash;

parity-bitcoin;

shasper。

也就是說,Parity Technologies 給使用Rust開發(fā)區(qū)塊鏈提供了一套「全家桶」。

polkadot/substrate

Polkadot 是由Web3基金會發(fā)起的一項計劃,由 Parity Technologies 負責開發(fā),旨在卻不限于使區(qū)塊鏈互聯(lián)。

Polkadot 使開發(fā)者和企業(yè)能夠利用其協(xié)議建立區(qū)塊鏈,即平行鏈(parachain)。只要這些平行鏈建立在Polkadot的基礎之上,它們將共享同樣的權威證明(PoA)共識。

由于該類型共識嵌于 Polkadot 中,平行鏈開發(fā)者可以專注于各自區(qū)塊鏈的特異性。所有平行鏈都和一種被稱為中繼鏈(relay chain)的通用區(qū)塊鏈無縫連接,后者扮演連接所有平行鏈的角色。

Polkadot 項目由Gavin Wood主導推進,其實跟上面的parity全家桶屬于同一家公司,但屬于不同的團隊在做。

如果你實時關注了 Polkadot 的進展狀況,你可能會經??吹健癝ubstrate”這個詞。它是 Polkadot 項目的重要組成部分。Parity Substrate 是獨立于 Polkadot 的項目。Polkadot 基于 Substrate ,其它基于 Substrate 的項目也能在 Polkadot 網絡上運行(形成一個生態(tài))。

那么什么是 Substrate 呢?你可以將其看作類似于 Express 或其他 Web 應用程序的框架,但它是用于構建分布式或去中心化的系統(tǒng)的框架,可以構建例如加密貨幣項目,或消息總線系統(tǒng)。

正如大多數(shù) Web 應用程序不需要重新實現(xiàn)自己的 HTTP 協(xié)議一樣,對于每一個團隊創(chuàng)建新鏈時,也不需要從頭實現(xiàn)網絡和共識的代碼,這浪費精力。

更不用提為了實現(xiàn)業(yè)務邏輯,必須雇用密碼學家、安全研究員、網絡工程師、開發(fā)人員(以協(xié)調更新)等等了。如果你使用 Substrate 來構建一個新項目,只需要在代碼中實現(xiàn)少量的函數(shù)回調,就可以輕松快速創(chuàng)建一條鏈。

鏈接:

https://github.com/paritytech/polkadot

https://github.com/paritytech/substrate

grin

grin是當今區(qū)塊鏈界小網紅。少數(shù)旨在成為真正貨幣的項目之一。

Grin 致力于提供隱私、可擴展性的加密貨幣,計劃在 2019 年初發(fā)布。其幾個獨特的屬性:使用名為 MimbleWimble 隱私保護區(qū)塊鏈格式;只在區(qū)塊鏈中存儲少量數(shù)據(jù),運行完整節(jié)點既便宜又容易。

Mimblewimble 由匿名人士開發(fā),團隊分布在世界各地;沒有任何預挖的 PoW 機制,更平等和去中心化。

Grin 核心開發(fā)者、Grin Council 成員 D

grin的出現(xiàn),預示著回歸比特幣的一股潮流的出現(xiàn),也許,這才是這一類項目正確的方向。

參與gin的開發(fā)交流,相當令人愉悅。

Holochain

Holochain致力于解決Dapp落地的事情,也就是說,它在構建一個云托管網絡。

當人們都在研究如何把區(qū)塊鏈性能提高的時候,Holochain卻在做造汽車的事。有時候思維固化并非好事,換一種思維方式或許就可以找到解決問題的新路徑。正如Holochain官網上的文字一樣:Think outside the blocks。

Holochain這個項目很有意思,它不是狹義上的區(qū)塊鏈。人們研究區(qū)塊鏈本質上是在研究通過解決信任問題完成價值傳輸,從而完成生產關系改變。

為了達到最終目的,我們不一定要把眼光僅限于某種特定技術上。無論是區(qū)塊鏈、DAG、Holochain,只要能達到我們最終目的,那么都可以認為是好的技術。

區(qū)塊鏈中為了保證信息一致性,系統(tǒng)中每個節(jié)點都是一個單獨的賬本,這些賬本記錄同樣的信息。雖然,區(qū)塊鏈這種分布式賬本技術滿足了一致性,但卻造成了巨大的信息冗余。

Holochain認為共識是可以分化的,沒必要所有的事件都去共識。因此它創(chuàng)新的從另一個角度去解決共識問題。Holochain將一個賬本分割成若干份,交給每一個參與節(jié)點,并通過DHT技術和密碼學技術保證賬本之間的一致性。

簡單來說,我們可以把DHT的作用理解為拼圖上的圖畫,我們可以通過圖畫來判斷這個拼圖是否完整。

節(jié)點不再需要多賬本同步記錄,只需要記錄與自身相關的內容就可以達成全網共識,這就是Holochain的革新之處。

Nervos

首先,Nervos 要做什么?官網上說,Nervos 是要:為未來的加密經濟構建分層的基礎設施。分層的方式也是現(xiàn)在區(qū)塊鏈主流體系設計,Layer 1 發(fā)行原生資產,支持高安全性高去中心化,犧牲效率。

而 Layer 2 去做擴容的事情。那么 Nervos CKB 作為體系的Layer 1,主要有以下兩個目的:資產的儲存和協(xié)議的增強(安全性和去中心化)。

注意,這也是 Nervos CKB 經濟體系設計的原則,即資產儲存大于價值交換。

Nervos有幾個有趣的設計亮點:

解決通縮與通脹的問題;

解決手續(xù)費的問題Nervos CKB 的一個理念是,智能合約平臺的價值除了原生代幣外,還應包含平臺上發(fā)行的其他加密資產的價值;

解決資源的價格問題;

解決利率的發(fā)現(xiàn)與調整問題。

exonum

由 Bitbury 出品。是一套使用Rust開發(fā)的許可鏈開發(fā)框架。使用exonum,可以方便的搭建聯(lián)盟鏈。

結束語

作為一個剛剛4歲的語言,Rust語言正在IT工業(yè)各個領域快速發(fā)展,而由于區(qū)塊鏈本身的特質,區(qū)塊鏈領域是較早接納Rust的領域之一。

在區(qū)塊鏈領域,Rust正以勢如破竹之勢占領區(qū)塊鏈新興項目市場,很多著名的老項目也在考慮轉向使用Rust重寫。

與此同時,WebAssembly技術的飛速發(fā)展帶來的成果也及時地應用到了區(qū)塊鏈中。Rust對WebAssembly提供了一等支持??赡苁撬姓Z言中目前為止最好的。具體請參考:

https://rustforce.net/article?id=6807cc27-0e6c-4bc9-baa3-8b0c68ae9529

相信,隨著Rust語言的 async/await 特性在今年的穩(wěn)定,使用Rust進行區(qū)塊鏈開發(fā)會變成更加輕松方便。選擇使用Rust作為第一開發(fā)語言的區(qū)塊鏈項目也會越來越多,我們會迎來一波的Rust語言學習高潮。

謹以本文作為Rust 4周年的生日禮物,祝Rust生日快樂!

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

    關注

    10

    文章

    1959

    瀏覽量

    38918
  • Rust
    +關注

    關注

    1

    文章

    240

    瀏覽量

    7481

原文標題:為什么Rust連續(xù)4年獲“最受喜愛編程語言”?

文章出處:【微信號:rgznai100,微信公眾號:rgznai100】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    2025開放原子開發(fā)者大會旋武開源社區(qū)Rust分論壇成功舉辦

    11月22日,2025開放原子開發(fā)者大會——旋武開源社區(qū)Rust分論壇在北京順利召開。論壇以“共建中國Rust生態(tài)”為核心主題,匯聚京東、華為、vivo、阿里、毛豆教育、DORA社區(qū)及南京大學等企業(yè)與學術機構技術專家,及眾多Rust
    的頭像 發(fā)表于 11-27 14:55 ?331次閱讀

    2025最佳的嵌入式編程語言有哪些呢?

    嵌入式系統(tǒng)是現(xiàn)代科技不可或缺的一部分。它們存在于家用電器、汽車、住宅、醫(yī)院、商店等各個領域。它們與我們的社會緊密相連。選擇合適的語言來構建嵌入式系統(tǒng)對于成功至關重要。那么,2025最佳的嵌入式編程
    的頭像 發(fā)表于 11-14 10:27 ?899次閱讀
    2025<b class='flag-5'>年</b>最佳的嵌入式<b class='flag-5'>編程</b><b class='flag-5'>語言</b>有哪些呢?

    RusT-Thread:基于Rust面向資源受限嵌入式設備的操作系統(tǒng)的實踐 | 技術集結

    RT-Thread為基礎,使用Rust語言重構其內核,形成了全新的RusT-Thread系統(tǒng)。系統(tǒng)采用模塊化架構,涵蓋內核服務、進程調度、內存管理、線程通信與時鐘控制等核心
    的頭像 發(fā)表于 11-07 17:37 ?6469次閱讀
    <b class='flag-5'>RusT</b>-Thread:基于<b class='flag-5'>Rust</b>面向資源受限嵌入式設備的操作系統(tǒng)的實踐 | 技術集結

    一文了解Mojo編程語言

    Mojo 是一種由 Modular AI 公司開發(fā)的編程語言,旨在將 Python 的易用性與 C 語言的高性能相結合,特別適合人工智能(AI)、高性能計算(HPC)和系統(tǒng)級編程場景。
    發(fā)表于 11-07 05:59

    華工科技連續(xù)榮獲深交所信息披露工作A級評價

    10月31日,深圳證券交易所(以下簡稱“深交所”)公布了深市主板上市公司2024-2025度信息披露工作評價結果,華工科技榮獲A級(最高)評級,這也是公司連續(xù)10此殊榮。兩市53
    的頭像 發(fā)表于 11-06 17:38 ?1032次閱讀

    Linux 編程語言盤點:從內核到AI的全棧選擇

    在工控圈和嵌入式圈里,有一個常年被討論的問題: ?“在 Linux 上,到底該用什么語言編程?” 有人堅信:C 才是真正的工業(yè)語言。有人反駁:Python 才是效率王者。還有人推崇 Go、Ru
    的頭像 發(fā)表于 11-06 17:05 ?431次閱讀

    德力西電氣榮登2025度大學生喜愛的雇主品牌

    在前程無憂2025度大學生喜愛的雇主品牌評選中,德力西電氣憑借創(chuàng)新性的雇主品牌建設與完善的人才培養(yǎng)體系,從數(shù)百家參選企業(yè)中突圍,首次斬獲大學生喜愛的雇主品牌殊榮,同時也是國內電氣制造行業(yè)第一家
    的頭像 發(fā)表于 07-24 17:16 ?719次閱讀

    請問OpenVINO? 是否支持 Rust 綁定?

    無法確定OpenVINO?是否支持 Rust 綁定。
    發(fā)表于 06-25 07:45

    KLA Corporation連續(xù)榮登“中國大學生喜愛的雇主品牌”

    ? 近日,中國權威人力資源服務商前程無憂正式揭曉“2025中國大學生喜愛的雇主品牌”榜單。 KLA憑借其在雇主品牌建設、校園人才吸引與培養(yǎng)等方面的持續(xù)投入和卓越表現(xiàn),以及歷年來在大學生群體中積累
    的頭像 發(fā)表于 06-12 10:57 ?969次閱讀

    TE Connectivity榮獲2025《財富》全球最受贊賞公司

    作為連接和傳感領域的全球行業(yè)技術企業(yè),TE Connectivity(以下簡稱“TE”)連續(xù)第八入選《財富》雜志“全球最受贊賞公司”榜單,再次證明了公司在全球商界的良好聲譽。
    的頭像 發(fā)表于 02-14 10:16 ?835次閱讀

    JavaScript與Rust和WebAssembly集成

    偶然一次機會,接觸了Rust的代碼。當時想給團隊小伙伴做演示,發(fā)現(xiàn)自己并不能在移動端按照文檔生成演示demo。我就想,要是Rust代碼能轉化成JavaScript就好了。結果一搜,還真有。
    的頭像 發(fā)表于 01-24 15:43 ?799次閱讀
    JavaScript與<b class='flag-5'>Rust</b>和WebAssembly集成

    數(shù)字電路編程語言介紹

    數(shù)字電路編程語言是專門為描述和模擬數(shù)字電路而設計的編程語言。它們通常具有以下特點: 硬件描述語言(HDL) :大多數(shù)數(shù)字電路
    的頭像 發(fā)表于 01-24 09:39 ?1392次閱讀

    Qorvo榮獲2024最受尊敬半導體上市公司獎

    Qorvo再次榮獲全球半導體聯(lián)盟(GSA)頒發(fā)的 “最受尊敬的半導體上市公司 ”獎。這標志著Qorvo在過去三中第二次此殊榮,此前Qorvo曾于2022
    的頭像 發(fā)表于 01-22 11:10 ?1280次閱讀

    gitee 支持的編程語言有哪些

    Gitee(碼云)是一個基于 Git 的代碼托管和研發(fā)協(xié)作平臺,類似于 GitHub 和 GitLab。它支持多種編程語言,允許開發(fā)者托管和管理代碼,進行版本控制,以及協(xié)作開發(fā)。以下是一些
    的頭像 發(fā)表于 01-06 09:50 ?1108次閱讀

    Triton編譯器支持的編程語言

    Triton編譯器支持的編程語言主要包括以下幾種: 一、主要編程語言 Python :Triton編譯器通過Python接口提供了對Triton語言
    的頭像 發(fā)表于 12-24 17:33 ?1468次閱讀