簡單説幾句
今天打字員要給大家安利一門編程語言Rust,這是一門神奇的語言,能夠幫助大家成功的尋找挫敗感,本來很早就有和大家分享這個尋找挫敗感的想法,無奈最近忙的不成人樣,同時也沉浸在尋找Rust挫敗感上無法自拔。所以今天特意把自己尋找挫敗感1.0系列的第一部分分享給大家,希望能夠幫助更多人能夠更好的尋找挫敗。
看黑板
那麼熟悉一名打字員的筒子們就要抬槓了,之前你才寫了一個nodejs的入門到放棄的系列,然後還鴿子了設計模式剩下來的java實現系列,現在怎麼又要安利這個叫Rust的不知道是哪旮旯裏面蹦出來的野生語言,是不是又來坑我們這些高級程序員?相信有的同學對Rust也早有耳聞,畢竟最近幾年stackoverflow上最受程序員歡迎的語言第二是python,其次是php,第一就是我們要説的Rust了。
敲重點
現在讓我們簡單而又低調的介紹一下我們今天的主角,Rust是一門系統編程語言,專注於安全尤其是併發安全,支持函數式和命令式以及泛型等編程範式的多範式語言,語法和C++類似。最初是由Mozilla研究院的Graydon Hoare設計的,然後在Dave Herman, Brendan Eich以及很多其他人的貢獻下逐步完善的。聽完上面的介紹是不是心中對Rust的形象突然一下高大起來了,不得不承認,Rust是一門很優秀的編程語言,擁有極高的性能以及極低的入坑門檻,具體其他更多的優點我們後面再一個一個探究。
今天我們先説説何來之挫敗感吧。
- 處理應用程序依賴版本和依賴衝突所帶來的挫敗感
這方面對於習慣了用庫管理以及構建工具的打字員來説感覺還好,gradle和npm等類似的已經深入人心了,所以這類挫敗感可能相對而言比較低。 - 噁心的生命週期標註
Rust裏面有生命週期這個概念,主要還是用來應對複雜類型系統中資源管理的問題,其中就會牽扯到很多複雜類型,另外還有Rust聖經中同時使用了泛型、特性、生命週期機制的程序,泛型、特性與生命週期協同作戰,真可謂挫敗感十足。 - 社區不完善
Rust現在雖然crate越來越多,但是生態環境以及社區相比較其他老牌語言而言還是有點薄弱,像我們這樣的新人除了看文檔之外,國內能和其他rust愛好者交流的平台比較少。 - debug要了老命
這個就不説了,都是淚。
學霸説
很多年前谷歌的首席架構師曾説過:
選擇一種語言時,所考慮的不僅僅是一系列技術上的權衡,而是在選擇一個社羣。這就像選擇一個酒吧。你希望去一個提供美酒的酒吧,但是美酒不是最重要的。主要是那個酒吧裏都有什麼樣的人,他們在談論些什麼。選擇計算機語言也是這樣的。時間一長,就這門語言也形成了一個社羣,社羣裏不僅僅有人羣,還有他們的軟件成果,如工具、庫等。這就是有些理論上看起來更好的語言無法成功的原因,他們無法在周圍構建成功的社羣。學習一種新語言的時候,要利用以前所學的語言的功底,但是也要保持開放的心態。有些人執著於一種理念:“這就是寫所有程序必須遵循的方法。”我不説是哪種語言,但是某些語言,出於某種原因,令人執著於這樣的理念。當他們開始學習新的語言的時候,他們批評這種語言跟真正的神的語言的所有不同之處。當他們使用新的語言時,他們極力使用真正的神的語言的方法去寫。這樣,你就會錯過這個新語言真正的獨特之處。你在生活中看到的很多東西,不管是架構上的,即建築物構建的方法,還是在語言上的,即人們進行溝通的方法,很多思想都是可以借用的。當然包括數學。數學和編程相當類似。所以要睜大雙眼,積極地吸收重組各種思想,這樣做絕對錯不了。
寫在最後
rust的優勢有很多,其實對我來説,rust把c++的智能指針變成rust的基本類型。變量會有一個所有權,不用智能指針的話,就只能借用。引入了模塊管理系統,十分的靈活,最重要的一點,寫個小項目終於不用寫makefile了。有興趣的朋友可以在WX中關注「一名打字員」一起交流鴨。