為什麼學習 rust?於我而言,也許是兩年前當我邁入區塊鏈的第一腳時就已經決定了。
選擇一門程式語言是很困難的,但卻又是重要的,其重要程度絕對不亞於你選擇在哪個地方買房子或者是你選擇在哪個地方扎根發展。因為當你開始學習一門程式語言的時候,不僅僅是你選擇了這麼程式語言,同時還選擇了程式語言相關的技術領域。
我和 rust 的緣分來自於對 libra 的學習,然後就被它吸引了。雖然很多時候選擇程式語言就如同你戀愛結婚一樣,都是在不知不覺就開始的,但是這裡我還是想用比較有邏輯的理由來說一下為什麼要選擇 rust。
從技術上說,rust 語言擁有非常顯著的和引人注目的優勢,這不僅僅體現在它追求替代 c++ 方面,還表現在它在工業界實際的優秀表現:出色的效能、高度控制、記憶體安全。
微軟一項調查顯示,在微軟的系統中,有 70% 的漏洞是因為使用 c/c++ 語言而造成的。但是這些漏洞又無法通過使用 c# 來避免,因為無法具有與 c/c++ 相媲美的效能。rust 被微軟認為是替換 c/c++ 唯一的候選人,因為它效能出色、安全,如果加以利用則能解決微軟系統中 70% 的漏洞。
除了記憶體安全、高效能和高度控制外,rust 還在其它方面具有強大的吸引力,如強大的型別安全保證等。實際上很多人都將 rust 和 c++ 比較,但是光從這一點上,其實是很難抉擇的。
在做乙個專案進行語言選擇時,通常會考慮以下問題:
(1)僱傭這類語言的開發人員是否容易?
(2)定製程式設計標準是否容易?
(3)開發人員的平均交付時間多長?
rust 語言雖然建立於 2006 年,但是卻在 2015 年才發行其第乙個版本,目前國內的熟手並不是很多,但是也有不少的大廠開始在進行這方面技術的使用。rust 語言作為能和 c++ 媲美的語言,其上手比 c++ 更容易,尤其是 c/c++ 熟手轉 rust 就更容易。
rust 語言本身有一條開發規範,如結構體、trait 等要求首字母大寫、駝峰命名,函式要求蛇形命名法等,因此非常利於專案組統一風格。另外就是 rust 語言至今時間尚短,不會像 c++ 那樣出現 c99 到 c11 這麼巨大的語法差距。
rust 功能強大,即適合進行 web 開發,又適合嵌入式系統層面的開發,並且具有豐富的軟體庫,而且編譯後的軟體產生 bug 的概率更小,因此開發效率遠勝於 c++。
這一點我不想從開發成本上來闡述,因為前面兩點已經完全能夠體現了。這一點我想說明的是選擇 rust 對個人成長和個人收益上的好處。rust 作為一門新語言,目前國內的熟手人群相對於其它語言來說要少的多,而且相對於 go 語言來說,它相對更難上手。但是由於其出色的效能和安全性,又在逐漸成為業界的寵兒,前面提到兩大巨頭微軟和谷歌都在其專案中使用 rust,還有前段時間滿城風雨的 facebook 使用 rust 來構建其區塊鏈系統 libra。種種的種種,都表明,這是一門很有錢途的語言。
前面我提到,選擇某種語言,其實也就選擇相關的技術棧。rust 語言天然適合區塊鏈這種要求高度安全的系統的開發,學習 rust,再進一步進軍區塊鏈相關的技術,對個人來說是比較不錯的選擇。
上面羅列了貌似比較有邏輯的理由,但其實並不重要,因為作為乙個 it 技術從業人員,其實只有一句話:學,就完了。
為什麼要學習
技術不斷發展,人們也需要不斷的學習。可是,學習的目的到底是為了什麼?有多少程式設計師認真思考過?古時候就有 書中自有 屋,書中自有顏如玉 的說法,那時一旦考取了功名,就可以當官發財,女人更是不 用發愁了。可是到了現代,素質教育普及化了,上大學已不是什麼稀罕的事情了。國內大部分從業的軟體人才,都 是學...
為什麼要學習Emacs
學習emacs是一種使用linux方式的改進,是linux知識水平的提高 比如在字元介面輸入乙個命令發現前面忘記敲入sudo,這個時候可以敲ctrl a把游標移到到行首,這個快捷方式和emacs裡面的快捷鍵相同的。emacs裡面的快捷鍵幾乎和bash裡面的快捷鍵相同。lisp語言,如果乙個程式設計師...
為什麼要學習英語
如果只學習一門外語,就要學英語。英語是費效比最高的外語。學習英語也方便以後學習其他外語。英語是it技術的基本語言。所有程式語言都是英語。各種技術文件也都是英文。少量翻譯的資料往往受翻譯者水平和努力程度的限制,很難充分反應原文的意思。英語是學校的必修課。既然不得不學,就應該學好,以證明自己的學習能力。...