真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

rust語言+go rust語言圣經(jīng)

Rust 和 Go 的并發(fā)模型有什么不同,為什說 Rust 的并發(fā)模型更好

1.根據(jù)Rust的特點(diǎn)和定位適用于對(duì)控制性比較強(qiáng),對(duì)性能很敏感的領(lǐng)域,比如底層軟件(OS/driver),基礎(chǔ)系統(tǒng)軟件(Compiler/VM/DB等),性能要求比較高的應(yīng)用軟件(瀏覽器/圖形圖像處理/游戲/高性能服務(wù)器軟件等,或者可能包括近來很火的ML應(yīng)用方向)。2.底層軟件(比如OS/driver)部分是和C應(yīng)用領(lǐng)域有很大重合度的,在這個(gè)領(lǐng)域我認(rèn)為對(duì)C沖擊不大。在這里C已經(jīng)足夠好了,而且這些領(lǐng)域技術(shù)性很高,但業(yè)務(wù)邏輯其實(shí)并不算太復(fù)雜,Rust的優(yōu)勢(shì)作用有限。而且Rust相比于C語言,帶來了一定的“黑盒”和這些領(lǐng)域一些不需要的語言復(fù)雜特性。C作為“可移植的匯編”恰到好處的非常適合這個(gè)領(lǐng)域,其他語言基本無法構(gòu)成挑戰(zhàn)。3.前面1中提到的領(lǐng)域除了底層軟件(OS/driver之類)剩下的領(lǐng)域,C++目前最具有優(yōu)勢(shì)。在這些領(lǐng)域C++相對(duì)于C提供了高級(jí)特性方便開發(fā),相對(duì)于JVM系的性能更高內(nèi)存更少。(雖然這些領(lǐng)域有些知名軟件是C和JVM系的,比如postgresql/redis/nginx/Hadoop/spark等,但在這些領(lǐng)域目前只有C++一個(gè)是全能型)我認(rèn)為rust的主要戰(zhàn)場(chǎng)就在這里,需要對(duì)決的對(duì)手就是C++。C++既有的力量(系統(tǒng)/代碼/人員/習(xí)慣)太強(qiáng)大了,在這些領(lǐng)域完全打敗C++是非常困難的。而且C++也在不斷發(fā)展,近年來發(fā)展的步伐也快了起來,C++11/14/17等等。但C++的歷史包袱是很重的,越發(fā)展其實(shí)復(fù)雜性也在不斷提高,何況有些問題(像安全/異常/復(fù)雜繼承等等)是基因里的,通過增加feature打補(bǔ)丁是彌補(bǔ)不了的。Rust最容易吸引的人群可能是C++程序員:因?yàn)?,一方面解決了不少C++的痛點(diǎn),另一方面Rust的很多特性其實(shí)有點(diǎn)復(fù)雜也有點(diǎn)門檻的。這些特性背后的動(dòng)因有C++背景的程序員是非常容易理解,也是不少C++程序員夢(mèng)寐以求的。相對(duì)而言,其他語言背景出身的程序員,對(duì)Rust的共鳴性遠(yuǎn)遠(yuǎn)沒有C++程序員強(qiáng)烈。猜測(cè)Rust會(huì):a.蠶食掉一定的C++份額。一些可能本會(huì)選擇C++開發(fā)的新項(xiàng)目,可能會(huì)選擇Rust。b.蠶食掉一定的Java份額。有些項(xiàng)目選擇JVM系是由于C++開發(fā)太復(fù)雜,同時(shí)該項(xiàng)目對(duì)性能又有一定的要求。那么Rust出現(xiàn)以后也會(huì)蠶食掉一定的此類項(xiàng)目。c.蠶食掉一定的golang份額。不滿意gc(即使1.5改善了,gc的先天問題是無法徹底解決的),不滿意泛型,不滿意性能的一部分項(xiàng)目。不過也要依賴于Rust未來并發(fā)的解決方案是否足夠理想了。1.0這種是沒戲的。d.移動(dòng)端Rust從自己實(shí)力上說是夠的。不過這個(gè)真的要看出品移動(dòng)端設(shè)備的“爹”的意思了。Rust自身有一些優(yōu)勢(shì)非常明顯,在這些領(lǐng)域是很有競(jìng)爭(zhēng)力的。Rust社區(qū)一定要重視IDE開發(fā)環(huán)境,花費(fèi)精力出eclipse/intellji/vs的高質(zhì)量的IDE插件,對(duì)于推廣和流行大有幫助。只要Rust社區(qū)不要犯D語言曾經(jīng)反復(fù)折騰的毛病,能像golang社區(qū)那樣基礎(chǔ)做的不錯(cuò)并且工程質(zhì)量?jī)?yōu)秀,那么未來Rust出幾個(gè)殺手級(jí)的應(yīng)用,前途還是很可期的。

成都創(chuàng)新互聯(lián)自2013年起,先為長(zhǎng)海等服務(wù)建站,長(zhǎng)海等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為長(zhǎng)海企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問題。

我為什么要選擇Rust

你好,很高興為你解答。

專訪資深程序員莊曉立:我為什么要選擇Rust?

Rust是由Mozilla開發(fā)的注重安全、性能和并發(fā)性的編程語言。這門語言自推出以來就得到了國(guó)內(nèi)外程序員的大力推崇。Rust聲稱解決了傳統(tǒng)C語言和C++語言幾十年來飽受責(zé)難的內(nèi)存安全問題,同時(shí)還保持了極高的運(yùn)行效率、極深的底層控制、極廣的應(yīng)用范圍。但在國(guó)內(nèi)有關(guān)Rust的學(xué)習(xí)文檔并不多見,不久前,筆者聯(lián)系上了Rust1.0版本代碼貢獻(xiàn)者莊曉立(精彩博文:為什么我說Rust是靠譜的編程語言),請(qǐng)他分享Rust語言特性以及學(xué)習(xí)經(jīng)驗(yàn)。

CSDN:你是從什么時(shí)候開始接觸Rust語言的?是什么地方吸引了你?

莊曉立:我大概從2013年后半年開始深入接觸Rust語言。它居然聲稱解決了傳統(tǒng)C語言和C++語言幾十年來飽受責(zé)難的內(nèi)存安全問題,同時(shí)還保持了極高的運(yùn)行效率、極深的底層控制、極廣的應(yīng)用范圍。

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

CSDN:在你看來,Rust是怎樣的一門語言?它適合開發(fā)什么類型的項(xiàng)目?為何你會(huì)說Rust不懼怕任何競(jìng)爭(zhēng)對(duì)手,它既能取代C語言地位;又可挑戰(zhàn)C++市場(chǎng),還可向Java、Python分一杯羹?與這些語言相比,Rust有哪些優(yōu)越的特性?

莊曉立:Rust是一門系統(tǒng)編程語言,特別適合開發(fā)對(duì)CPU和內(nèi)存占用十分敏感的系統(tǒng)軟件,例如虛擬機(jī)(VM)、容器(Container)、數(shù)據(jù)庫/游戲/網(wǎng)絡(luò)服務(wù)器、瀏覽器引擎、模擬器等,而這些向來主要都是C/C++的傳統(tǒng)領(lǐng)地。

此外,Rust在系統(tǒng)底層開發(fā)領(lǐng)域,如裸金屬(bare metal)、操作系統(tǒng)(OS)、內(nèi)核(kernel)、內(nèi)核模塊(mod)等,也有強(qiáng)勁的實(shí)力,足以挑戰(zhàn)此領(lǐng)域的傳統(tǒng)老大C語言。Rust豐富的語言特性、先進(jìn)的設(shè)計(jì)理念、便捷的項(xiàng)目管理,令它在上層應(yīng)用開發(fā)中也能大展拳腳,至少在運(yùn)行性能上比帶VM和GC的語言要更勝一籌。無GC實(shí)現(xiàn)內(nèi)存安全機(jī)制、無數(shù)據(jù)競(jìng)爭(zhēng)的并發(fā)機(jī)制、無運(yùn)行時(shí)開銷的抽象機(jī)制,是Rust獨(dú)特的優(yōu)越特性。

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

CSDN:Rust在國(guó)內(nèi)有沒有具體的實(shí)際使用案例?

莊曉立:因?yàn)镽ust1.0正式版剛剛發(fā)布不足一月,在國(guó)內(nèi)影響力還不大,我們不能苛求它在國(guó)內(nèi)有實(shí)際應(yīng)用案例。但是在國(guó)外,一兩年前就已經(jīng)有OpenDNS和Skylight把Rust應(yīng)用在生產(chǎn)環(huán)境。還有瀏覽器引擎Servo、Rust編譯器和標(biāo)準(zhǔn)庫、項(xiàng)目管理器Cargo等“兩個(gè)半大型應(yīng)用案例”。這些足夠說明Rust語言的成熟和實(shí)用。

CSDN:你參與了Rust1.0版本代碼貢獻(xiàn),目前該版本正式版已經(jīng)發(fā)布,對(duì)此你感覺如何?這門語言是否已經(jīng)達(dá)到比較成熟的階段?

莊曉立:我積極參與了Rust語言開源項(xiàng)目,多次貢獻(xiàn)源代碼,曾連續(xù)三次出現(xiàn)在Rust官方博客公布的Rust 1.0 alpha、Rust 1.0 beta和Rust 1.0正式版的貢獻(xiàn)者名單中。在Rust 1.0正式版出臺(tái)的過程中及此前的很長(zhǎng)一段時(shí)間,開發(fā)者付出了極大的努力,確保Rust 1.0正式版在Semver 2.0規(guī)范下,務(wù)必保持向后兼容性,除非遇到重大Bug不得不修復(fù)。

我認(rèn)為,在1.0正式發(fā)布之后,Rust就已經(jīng)進(jìn)入了比較成熟的階段。而且,Rust還在快速迭代發(fā)展過程中,1.0發(fā)布6周后將發(fā)布1.1,再6周后將發(fā)布1.2,必然會(huì)一步一個(gè)臺(tái)階,越來越成熟穩(wěn)定。

CSDN:除了功能優(yōu)先級(jí)以外,在你看來,Rust正在朝什么方向發(fā)展?未來的Rust可以期待什么樣的特性?

莊曉立:Rust一定會(huì)沿著“確保內(nèi)存安全、無運(yùn)行開銷、高效實(shí)用”的既定方向持續(xù)發(fā)展。在短期內(nèi)值得期待的語言特性有:動(dòng)態(tài)Drop、偏特化、繼承、改進(jìn)borrow checker、改進(jìn)宏和語法擴(kuò)展。短期內(nèi)值得期待的其他特性有:增強(qiáng)文件系統(tǒng)API、提供內(nèi)存申請(qǐng)釋放API、更好地支持Windows和ARM、更快的編譯速度、更方便的二進(jìn)制分發(fā)機(jī)制(MUSL)、更實(shí)用的工具等等。

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

莊曉立:推崇Go語言還談不上,不過我曾經(jīng)嘗試努力接受Go語言,2011底年開始我曾經(jīng)花費(fèi)將近半年時(shí)間深度關(guān)注Go開發(fā)進(jìn)程,提了很多具體的改進(jìn)意見和建議,也曾經(jīng)多次嘗試貢獻(xiàn)源代碼。后來考慮到Go語言的設(shè)計(jì)理念跟我偏差太大,其社區(qū)也不太友好,慢慢地疏遠(yuǎn)了它。我曾經(jīng)寫過一篇博客《我為什么放棄Go語言》,談到了很多具體的原因。

CSDN:國(guó)內(nèi),參與Rust代碼貢獻(xiàn)的開發(fā)者多嗎?有核心的人員嗎?有哪些社區(qū)在維護(hù)Rust?

莊曉立:國(guó)內(nèi)參與Rust代碼貢獻(xiàn)的開發(fā)者并不多,但也不少,官方的貢獻(xiàn)者名單中也偶見幾個(gè)貌似國(guó)人的名字。Rust的核心開發(fā)人員基本上都是Mozilla公司的員工,他們專職負(fù)責(zé)開發(fā)維護(hù)Rust語言和相關(guān)的項(xiàng)目,Rust社區(qū)也主要是他們參與組織和管理的。社區(qū)人員討論主要集中在GitHub項(xiàng)目主頁RFC/PR/Issue官方、Discuss論壇/IRC、Reddit、HN、StackOverflow等。

對(duì)比Go 語言,Rust 有什么優(yōu)勢(shì)和劣勢(shì)

Python 是腳本語言,也就是中間件語言,其內(nèi)核仍然是純 c 的性能表達(dá)的,而主要性能消耗在腳本的實(shí)時(shí)編譯上。而對(duì)比c,同樣的功能,python可以表達(dá)比c更加精煉,當(dāng)然犧牲了一些性能。如果確實(shí)對(duì)某個(gè)模組性能不滿意,還可以使用 c 編寫 Python 模塊為其加速。面對(duì)一些并不需要過多性能而可以獲得更快捷的開發(fā)速度,Python的優(yōu)勢(shì)完全可以蓋過“劣勢(shì)”。可以說,Python基本完美。例如知乎就是使用 Python 制作的。Google 的許多頁面也是使用 Python 進(jìn)行渲染的。


本文標(biāo)題:rust語言+go rust語言圣經(jīng)
URL鏈接:http://weahome.cn/article/hiieio.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部