Rust 是一門通用、編譯型、靜態類型編程語言。說起 Rust 語言的優點,不少人會想到三個詞,安全、併發、高效。但相關調查結果表明,Rust 在開發者中的熱度並沒有想象中的高。學習曲線陡峭或許是一部分原因。 QCon北京2019 邀請了字節跳動跨平臺團隊負責人王樅,與大家分享 Rust 跨平臺客戶端開發在字節跳動的實踐經驗,點此瞭解詳情
近日,Stack Overflow 發佈了 2019 開發者年度調查報告,報告顯示,Rust 連續四年成爲最受開發者喜愛的編程語言。據瞭解,此次約有近 90,000 名來自世界各地的開發者參與調查。Stack Overflow 作爲全世界最流行、最頂級的 IT 技術問答社區,其數據具有一定的參考價值。
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%。相關數據如下:
Rust 看起來很好很強大,業界是否已經將其大量投入使用了呢?並非如此。2018 年,JetBrains 發起了其標準的年度調查項目,調查了 6,000 名開發人員,以確定開發人員生態系統的狀態。結果顯示,Rust 在開發者中的熱度並沒有想象中的高。
2018 年年尾,Rust 官方博客發佈了 2018 年的 Rust 調查報告。報告的數據也證明了這一點:很多非 Rust 用戶表示他們所在的公司本身不使用 Rust,超過三分之一的用戶表示,目前還沒有考慮在未來一年嘗試使用 Rust。
Rust 的學習曲線比較陡峭,上手難是導致初學者倒在入門階段的一大原因,對使用其他語言的企業來說,轉移成本也是需要考慮的一點,所以這直接影響了 Rust 的使用者數量。再者,Rust 的生產環境偏少,企業招人難,開發者求職也不容易。
作爲一門小衆語言,Rust 雖然沒有大熱,但一直保持着緩慢而穩健的增長。2017 年,Rust 語言在 GitHub 上 Star 大於 10 的項目數爲 2,139,2019 年 4 月,這個數字增長到了 6,131。
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