Rust初步接觸

邂逅

周五在圖書館瀏覽新到圖書時(shí)發(fā)現(xiàn)有幾個(gè)RUST語言的書喊暖,聽旁邊的曉旭說這個(gè)語言隱隱有替代C的趨勢撕瞧,頓時(shí)對這個(gè)從來沒有聽說過的語言產(chǎn)生了好奇。翻了翻書丛版,才知道該語言已經(jīng)在很多項(xiàng)目中使用到了,特別是區(qū)塊鏈相關(guān)的領(lǐng)域页畦,RUST的安全、快速豫缨、開發(fā)效率非常適合區(qū)塊鏈項(xiàng)目的要求。我本人對區(qū)塊鏈非常不感冒好芭,也因此而遲遲沒有接觸到這門語言。

程序員的特質(zhì)也各個(gè)不同舍败,有的程序員喜歡追逐新鮮的事務(wù),看到新出現(xiàn)或者之前未了解過的語言瓢颅,會(huì)顯示出比較大的興趣(當(dāng)然更多的時(shí)候是淺嘗輒止)弛说;有的程序員更傾向于修煉內(nèi)功心法翰意,認(rèn)為語言只是工具,對系統(tǒng)與網(wǎng)絡(luò)的深入理解才是真正的技術(shù)所在冀偶。后者往往從事的底層系統(tǒng)開發(fā)工作,使用C語言稠曼,摒棄花里胡哨的技巧并以此為傲客年。

C語言質(zhì)樸無華漠吻,重劍無鋒司恳。在C語言的世界里,錘子就是錘子扔傅,釘子就是釘子耍共,它們就是你直觀上看到的最本質(zhì)的形態(tài)猎塞。然而我們往往要用這些最簡單的工具來構(gòu)造最復(fù)雜的系統(tǒng)。C給了程序員無上的權(quán)利荠耽,程序員可以隨意訪問內(nèi)存钩骇,可以操縱硬件。然而這些權(quán)利帶來的可不是快感骇塘,而是指針亂飛、內(nèi)存泄露款违、棧溢出的恐懼唐瀑。當(dāng)一個(gè)指針流轉(zhuǎn)到程序員指尖的時(shí)候,估計(jì)他馬上就能體會(huì)到“能力越大責(zé)任越大”這句話的含義哄辣。當(dāng)我們看到一個(gè)C程序員仔仔細(xì)細(xì)計(jì)算著指針偏移,哆哆嗖嗖操作著線程寫著并發(fā)代碼的時(shí)候赠尾,我們只能報(bào)以敬意與同情的目光力穗,默默的為他祈禱。

Rust設(shè)計(jì)哲學(xué)

RUST或許是C語言程序員的另一種選擇气嫁。我們選擇C語言,或許是因?yàn)樗峁┝藷o可比擬的高效性寸宵,也或許是因?yàn)樗鼰o所不在的可移植性崖面。RUST就是為了那些既渴望速度(編碼與運(yùn)行)又渴望穩(wěn)定與快感的程序員設(shè)計(jì)的;它打破了我們固有的偏見梯影,告訴我們實(shí)現(xiàn)底層平臺(tái)功能的語言工具巫员,也可以做到高效的開發(fā)效率與穩(wěn)定的代碼質(zhì)量。使用RUST甲棍,或許能讓我們明白简识,代碼不一定要依賴強(qiáng)大的測試或者有經(jīng)驗(yàn)的“老師傅”來把關(guān),通過語言自身,就可以把大部分的問題擋在門外奢赂。

任何事物都需要為自己的存在找到理由和位置,Rust語言設(shè)計(jì)就是為系統(tǒng)工程師尋找到”安全戳寸、性能“這兩者的最佳平衡點(diǎn)。在Rust的設(shè)計(jì)理念里袖瞻,內(nèi)存使用應(yīng)當(dāng)是安全的,但是又不能因?yàn)閮?nèi)存安全而犧牲掉性能(如GC)拆吆;同時(shí)語言應(yīng)當(dāng)具備高效的開發(fā)效率枣耀,它的表達(dá)方式應(yīng)當(dāng)是易于理解捞奕,符合人類思維和抽象習(xí)慣的牺堰。簡而言之,Rust想要的是Java的開發(fā)效率颅围,C的執(zhí)行效率院促,還能兼顧有其他語言的優(yōu)秀表達(dá)方式,以及安全的內(nèi)存常拓、并發(fā)開發(fā)保證渐溶。由此總結(jié)Rust的設(shè)計(jì)哲學(xué)三大件:內(nèi)存安全;零成本抽象弄抬;實(shí)用性茎辐。

Rust語言的設(shè)計(jì)與發(fā)展融合了當(dāng)下眾多語言的優(yōu)質(zhì)特性,這就是一門新語言的發(fā)展優(yōu)勢所在掂恕。比如從C++借鑒了RAII機(jī)制荔茬,從Haskell借鑒了泛型、表達(dá)式等竹海。當(dāng)然Rust也有基于自身設(shè)計(jì)目標(biāo)而發(fā)展出來的獨(dú)有特性如仿射類型、借用丐黄、生命周期等斋配,它還重新審視了錯(cuò)誤處理機(jī)制,幫助程序員更合理的處理異常,提升程序健壯性艰争。然而這種到處借鑒雜糅的特性集也讓許多有經(jīng)驗(yàn)的程序員無法適從坏瞄。有經(jīng)驗(yàn)的程序員會(huì)潛意識(shí)的把語言特性映射到熟悉的語言身上以幫助自己理解,但是遇到Rust甩卓,你能看到許多自己能夠?qū)?yīng)上的知識(shí)點(diǎn)鸠匀,也必然能看到許多生疏的表達(dá)方式和使用技巧;或許這些會(huì)讓你覺得不自在甚至稍許驚慌逾柿,但是熟悉以后缀棍,自身也能得到很大的成長。Rust編譯器非常強(qiáng)大机错,它是我們代碼安全的重要保障爬范,但也讓許多初學(xué)者覺得迷惑,因?yàn)楹芏嗔?xí)慣性的寫法弱匪,Rust編譯器上可能會(huì)給你一個(gè)編譯失敗的結(jié)果青瀑。很多人都說Rust的學(xué)習(xí)曲線非常陡峭,或許我們更應(yīng)該從擺正自己的學(xué)習(xí)心態(tài)萧诫,清空存量思維斥难,用心接納和理解Rust的設(shè)計(jì)哲學(xué),把Rust當(dāng)做自己的朋友帘饶,而不是拿它和自己較勁哑诊。

社區(qū)

Rust是一門典型的草根創(chuàng)造的語言,它由一位Mozilla工程師Graydon Hoare在2006年創(chuàng)造.我非常喜歡這種草根式(非學(xué)院派)的創(chuàng)造發(fā)明尖奔,它往往是從工作者自身的觀察角度出發(fā)搭儒,解決的也是工作者自身最痛的痛點(diǎn)。這樣的項(xiàng)目非常容易引起共鳴提茁,天生就適合社區(qū)方式發(fā)展成長淹禾。實(shí)際上Rust語言自身就是一個(gè)明星開源項(xiàng)目(https://github.com/rust-lang/rust),而且社區(qū)化運(yùn)作已經(jīng)非常成熟茴扁,有完備的文檔铃岔,具體的工作組分工,有完整的標(biāo)準(zhǔn)制定流程峭火,版本發(fā)布的節(jié)奏也穩(wěn)定下來毁习。

學(xué)習(xí)理解和使用Rust最好的方式,當(dāng)然就是參與到Rust開源社區(qū)中卖丸,閱讀開源社區(qū)代碼纺且,加入開源項(xiàng)目。Rust語言本身的官方開源項(xiàng)目在Github地址為https://github.com/rust-lang稍浆,大家如果對語言本身的開源代碼感興趣载碌,可以去查閱這個(gè)項(xiàng)目的代碼猜嘱。個(gè)人比較感興趣的項(xiàng)目有Redox(https://github.com/redox-os/redox),一個(gè)用Rust實(shí)現(xiàn)的操作系統(tǒng)項(xiàng)目嫁艇。項(xiàng)目本身還非常弱小朗伶,很多功能都在起步階段,但是學(xué)習(xí)和加入該項(xiàng)目步咪,對我們深入理解系統(tǒng)原理论皆,學(xué)習(xí)Rust語言都非常有益。該項(xiàng)目的網(wǎng)絡(luò)協(xié)議棧使用了另一個(gè)Rust開源項(xiàng)目Smoltcp(https://github.com/m-labs/smoltcp)猾漫,我對網(wǎng)絡(luò)協(xié)議棧更有興趣点晴,Smoltcp會(huì)成為我主要的學(xué)習(xí)對象,或許我會(huì)重點(diǎn)看看TCP算法和IPv6協(xié)議棧静袖。

在開源世界里觉鼻,社區(qū)大于代碼本身,如果我們只關(guān)注Rust語言本身队橙,那是緣木求魚舍本逐末坠陈。我認(rèn)為更多的是要參與到社區(qū)的討論中,理解社區(qū)的思想捐康,加入到他們的思維碰撞中仇矾。以前我們總覺得自己在開源的門外,那是因?yàn)槲覀冏陨淼乃枷刖驮陂_源的門外解总。只有自己的思維參與進(jìn)去了贮匕,我們才能真正把開源落實(shí)到行動(dòng)。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末花枫,一起剝皮案震驚了整個(gè)濱河市刻盐,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌劳翰,老刑警劉巖敦锌,帶你破解...
    沈念sama閱讀 217,185評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異佳簸,居然都是意外死亡乙墙,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,652評論 3 393
  • 文/潘曉璐 我一進(jìn)店門生均,熙熙樓的掌柜王于貴愁眉苦臉地迎上來听想,“玉大人,你說我怎么就攤上這事马胧『郝颍” “怎么了?”我有些...
    開封第一講書人閱讀 163,524評論 0 353
  • 文/不壞的土叔 我叫張陵佩脊,是天一觀的道長蛙粘。 經(jīng)常有香客問我朽色,道長,這世上最難降的妖魔是什么组题? 我笑而不...
    開封第一講書人閱讀 58,339評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮抱冷,結(jié)果婚禮上崔列,老公的妹妹穿的比我還像新娘。我一直安慰自己旺遮,他們只是感情好赵讯,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,387評論 6 391
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著耿眉,像睡著了一般边翼。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上鸣剪,一...
    開封第一講書人閱讀 51,287評論 1 301
  • 那天组底,我揣著相機(jī)與錄音,去河邊找鬼筐骇。 笑死债鸡,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的铛纬。 我是一名探鬼主播厌均,決...
    沈念sama閱讀 40,130評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼告唆!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,985評論 0 275
  • 序言:老撾萬榮一對情侶失蹤虐秋,失蹤者是張志新(化名)和其女友劉穎趋观,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體茄螃,經(jīng)...
    沈念sama閱讀 45,420評論 1 313
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡缝驳,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,617評論 3 334
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了归苍。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片用狱。...
    茶點(diǎn)故事閱讀 39,779評論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖拼弃,靈堂內(nèi)的尸體忽然破棺而出夏伊,到底是詐尸還是另有隱情,我是刑警寧澤吻氧,帶...
    沈念sama閱讀 35,477評論 5 345
  • 正文 年R本政府宣布溺忧,位于F島的核電站咏连,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏鲁森。R本人自食惡果不足惜祟滴,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,088評論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望歌溉。 院中可真熱鬧垄懂,春花似錦、人聲如沸痛垛。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,716評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽匙头。三九已至漫谷,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間蹂析,已是汗流浹背舔示。 一陣腳步聲響...
    開封第一講書人閱讀 32,857評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留识窿,地道東北人斩郎。 一個(gè)月前我還...
    沈念sama閱讀 47,876評論 2 370
  • 正文 我出身青樓,卻偏偏與公主長得像喻频,于是被迫代替她去往敵國和親缩宜。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,700評論 2 354

推薦閱讀更多精彩內(nèi)容

  • TITLE: 編程語言亂燉 碼農(nóng)最大的煩惱——編程語言太多甥温。不是我不學(xué)習(xí)锻煌,這世界變化快! 有時(shí)候還是蠻懷念十幾姻蚓、二...
    碼園老農(nóng)閱讀 5,321評論 2 35
  • Swift1> Swift和OC的區(qū)別1.1> Swift沒有地址/指針的概念1.2> 泛型1.3> 類型嚴(yán)謹(jǐn) 對...
    cosWriter閱讀 11,100評論 1 32
  • github地址:https://github.com/bradyjoestar/rustnotes(歡迎star...
    bradyjoestar閱讀 6,879評論 0 4
  • 第17章養(yǎng)生修壽 人為什么而活著宋梧?具有不同價(jià)值觀的人有不同的回答, 我們的回答是“為活著而活著狰挡∥媪洌” 活著是普世價(jià)值...
    道易無成2閱讀 129評論 0 0
  • 你好嗎?新西蘭的冬天 空間錯(cuò)位加叁,我們各自在不同的時(shí)間縫隙里過著不一樣的社會(huì)生活倦沧。 我試圖逃離有你的生活圈,卻不知道...
    Eileen_Adam閱讀 183評論 0 0