為什麼要學習 Rust

linghuyichong發表於2019-12-01

緣起

為什麼學習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技術從業人員,其實只有一句話:學,就完了。

本作品採用《CC 協議》,轉載必須註明作者和本文連結
令狐一衝

相關文章