明明很好很強大,Rust 卻還是那麼小衆

Rust 是一門通用、編譯型、靜態類型編程語言。說起 Rust 語言的優點,不少人會想到三個詞,安全、併發、高效。但相關調查結果表明,Rust 在開發者中的熱度並沒有想象中的高。學習曲線陡峭或許是一部分原因。 QCon北京2019 邀請了字節跳動跨平臺團隊負責人王樅,與大家分享 Rust 跨平臺客戶端開發在字節跳動的實踐經驗,點此瞭解詳情

近日,Stack Overflow 發佈了 2019 開發者年度調查報告,報告顯示,Rust 連續四年成爲最受開發者喜愛的編程語言。據瞭解,此次約有近 90,000 名來自世界各地的開發者參與調查。Stack Overflow 作爲全世界最流行、最頂級的 IT 技術問答社區,其數據具有一定的參考價值。

image

Rust 是一門通用、編譯型、靜態類型編程語言,由 Mozilla 主導開發。它支持函數式、併發式、過程式以及面向對象的編程風格。第一個有版本號的 Rust 編譯器於 2012 年 1 月發佈。

說起 Rust 語言的優點,不少人會想到三個詞,安全、併發、高效。

安全:Rust 是靜態的,擁有豐富類型系統和所有權模型,保證了內存安全性和線程安全性。 C 語言很容易出現整數溢出,如果被黑客利用,很容易出現安全問題。而 Rust 中的每個值都只能被一個所有者擁有,所以 C 語言遇到的這類問題,對 Rust 來說都不是問題。

併發:併發和並行是 IT 圈內不會過時的話題,Rust 可讓程序在編譯時併發執行,並且將安全與併發完美統一。

高效:沒有 Runtime,也沒有 GC,所以 Rust 非常快且節省內存,它可以爲性能關鍵型服務提供動力,在嵌入式設備上運行,並且可以輕鬆地與其他語言集成。

Bryan Cantrill 是 Joyent 的首席技術官,以在 Sun Microsystems 開發 DTrace 而聞名。他曾爲 Rust 寫過一篇推薦文章,用自己的實際體驗驗證了 Rust 的諸多優點,如錯誤處理、宏、Serde、集成測試和社區。在文章的末尾,他還提到自己用 Rust 重寫了一個 C 程序,運行結果令人驚奇,這個原生的未經過任何調優的程序比他精心寫成的 C 快了約 32%。相關數據如下:

image
image
image

Rust 看起來很好很強大,業界是否已經將其大量投入使用了呢?並非如此。2018 年,JetBrains 發起了其標準的年度調查項目,調查了 6,000 名開發人員,以確定開發人員生態系統的狀態。結果顯示,Rust 在開發者中的熱度並沒有想象中的高。

image

2018 年年尾,Rust 官方博客發佈了 2018 年的 Rust 調查報告。報告的數據也證明了這一點:很多非 Rust 用戶表示他們所在的公司本身不使用 Rust,超過三分之一的用戶表示,目前還沒有考慮在未來一年嘗試使用 Rust。

Rust 的學習曲線比較陡峭,上手難是導致初學者倒在入門階段的一大原因,對使用其他語言的企業來說,轉移成本也是需要考慮的一點,所以這直接影響了 Rust 的使用者數量。再者,Rust 的生產環境偏少,企業招人難,開發者求職也不容易。

作爲一門小衆語言,Rust 雖然沒有大熱,但一直保持着緩慢而穩健的增長。2017 年,Rust 語言在 GitHub 上 Star 大於 10 的項目數爲 2,139,2019 年 4 月,這個數字增長到了 6,131。

image

Rust 對標的是 C/C++,而 C++ 的學習曲線比起 Rust 更爲陡峭,所以對那些希望編寫 C/C++ 卻又覺得它們難以接近的程序員來說,Rust 是一個不錯的選擇。它十分適合寫安全且高效的代碼,可應用於嵌入式設備和可擴展 Web 服務的開發。目前,除 Mozilla 之外,全球有數百家公司正在使用 Rust,比如 Amazon、Atlassian、Dropbox、Facebook、Google、Microsoft、Red Hat 和 Reddit 等等。在國內,百度安全實驗室的 MesaTEE 下一代可信安全計算服務框架、 PingCAP 的 TiKV 等項目用到了 Rust 語言,螞蟻金服、知乎和 SenseTime 內部也不乏用 Rust 語言開發的項目,而字節跳動則將 Rust 用到了今日頭條企業級 IM 產品 Lark 的開發之中,它也是國內對 Rust 開發者最爲友好的公司之一。

如果你也對 Rust 感興趣, QCon北京2019 邀請到了字節跳動跨平臺團隊負責人王樅,爲大家帶來《Rust 跨平臺客戶端開發在字節跳動的實踐》的分享,可以關注一下。

近些年,字節跳動成長十分迅猛,與自身的技術創新離不開關係。想知道更多來自字節跳動的技術細節?本屆大會中,以下技術實踐值得關注:

ByteMQ: A distributed message queue towards scalability
基於數據建模的高性能彈幕設計解決方案
ClickHouse 在頭條的技術演進

更多技術難題的創新解法請點擊 QCon北京2019 瞭解。大會報名現已進入倒計時,團購可享折扣優惠!席位有限,馬上拿起電話聯繫票務小姐姐 Ring 吧:電話/微信:17310043226

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章