打敗 Python、JS、C#成最受歡迎編程語言,是時候掌握 Rust 了嗎?
無論何時,編程語言的流行度都是一個經典且火熱的討論話題。而怎樣衡量流行度?如果兩種語言的目標和適用人群迥異,該如何較出高下?事實上,有許多方法可以衡量編程語言的流行度。例如,可以查看 StackOverflow、內部論壇、Twitter、Google 趨勢上的話題熱度增長,或者根據各種語言流行度報告來判斷。每種衡量方法都有各自的優勢和劣勢。
在本文中,我們將窺探曾經在Stack Overflow 年度開發者調查報告中成功逆襲 Kotlin、Python、JavaScript 成為最受歡迎的編程語言—— Rust 的未來發展趨勢,以及剖析它流行的原因。
下面我們將關注一些數據,用這些數據展示語言的用途,而不是熱度(即討論 Rust 的人數)。如果人們使用某種語言完成實際工作,那才是語言成功的真正標誌。
Rust 是什麼?
Rust 是由 Mozilla 開發的注重安全、性能和並發性的編程語言。自 2015 年 5 月發布 1.0 之後,一直以每 6 周一個小版本的開發進度穩定向前推進。Rust 受到了 Cyclone(C 的一種安全方言,一種命令式語言)的重大影響,包含來自 C++ 的面向對象特性的一些方面。但是,它也包含來自 Haskell 和 OCaml 等語言的函數特性。結果,我們獲得了一種支持多模式編程(命令、函數和面向對象)的類似 C 的語言。
Rust 及其家譜
接下來我們看看開源界的 Rust 使用情況,為此我們來看看 GitHub。
GitHub 上的成長
GitHub 提供了幾種辦法來衡量特定語言的增長情況。GitHub 自己使用特定語言的拉取請求次數,這也是GitHub Octoverse(https://octoverse.github.com/)中使用的數據。
查詢 2018 年到目前為止的話,那麼 PR 數最多的 15 種語言是:
JavaScript: 1736476
Python: 804790
Java: 703649
Ruby: 560430
PHP: 359040
C++: 319324
TypeScript: 311229
Go: 258131
C#: 246513
CSS: 236795
Shell: 168301
C: 160889
Swift: 67664
Scala: 67188
Rust: 52936
Rust 作為 Swift/Scala/Rust 一組排名第十五。這個排名挺不錯。列表上的所有其他語言都是在實際應用中使用頻率非常高的語言,而不是娛樂性質的語言。
第十五名這個名次也很重要,因為如果 Octoverse 今天生成的話,Rust 將第一次進入排名。
我們繼續來看。關注 PR 數量的一個缺陷就是,少量非常成功的項目會給結果造成偏差。這些流行項目的 PR 數非常高,因此它所用的語言會排名很靠前。為了避免這個問題,我們還要看看「活躍項目數」。這裡我們定義「活躍項目數」為:
比「hello world」大的項目;
至少有一個星;
最近 30 天內有活動。
排名如下:
JavaScript: 56437
Python: 37554
Java: 27912
C++: 16787
PHP: 16451
Shell: 12245
C#: 11503
C: 10662
Go: 8816
CSS: 8781
TypeScript: 8447
Ruby: 7518
Swift: 3828
Objective-C: 3054
Rust: 2604
Kotlin: 2343
Scala: 2072
這個排名中 Rust 的結果也不錯。同樣,這裡都是正式項目中用到的語言。
GitHub 的數據給出了一個排名,而其他地方是不是有同樣的排名?由於 Rust 如此流行,我們希望看看它在業界的流行程度。
Rust 的商業用戶
過去一年間,Rust 在商業應用上有著令人驚訝的成長。下面是部分人們熟知的名字:
亞馬遜:用 Rust 構建工具(https://github.com/amzn/askalono)。
Atlassian(Jira的廠商):在後台使用 Rust(https://github.com/rust-lang/rust-www/pull/922)。
Dropbox:在前端和後台都使用Rust(https://air.mozilla.org/rust-meetup-may-2017/)。
Facebook:源代碼控制工具(https://twitter.com/Sunjay03/status/1019782490800603136)。
Google:作為 Fuchsia 項目的一部分(https://github.com/fuchsia-mirror?utf8=%E2%9C%93&q=&type=&language=rust)。
微軟:在新的 Azure 物聯網框架中部分使用了Rust(https://twitter.com/maxgortman/status/1012011425353461760)。
npm:一些 npm 核心服務中使用了 Rust(https://github.com/rust-lang/rust-www/pull/634)。
Red Hat:用 Rust 建立新的存儲系統(https://github.com/stratis-storage)。
Reddit:用 Rust 進行評論處理(https://www.reddit.com/r/rust/comments/7utj4t/reddit_is_hiring_a_senior_rust_engineer/)。
Twitter:用 Rust 作為構建團隊支持的一部分(https://twitter.com/stuhood/status/978410393944047617?s=19)。
在 Rust 的合作夥伴(https://www.rust-lang.org/en-US/friends.html)的列表中還能看到更多熟悉的名字,如百度、Wire、Mozilla、三星、Cloudflare、Chef、Canonical 等等。
在業界,軟體公司開始在某種程度上接受 Rust。如大家期待的那樣,最初可能是實驗性質的使用,主要用 Rust 做構建工具、後台處理,或者針對某個特定的平台,如物聯網。早期的用戶如 Dropbox、Canonical 現在已經過了最初的嘗試階段,開始在更多代碼中使用 Rust。
這一切都說明,現在依然是 Rust 的早期階段。大公司在廣泛接受新技術之前需要花很多時間去嘗試。我們在接受曲線中看到了 Rust 的身影,而且它表現得很不錯。像 Go 和 TypeScript 等近幾年爆炸式增長的語言當初也有類似的表現。
由於 Rust 和 C++ 很相近,我們還應該看看那些傳統上由 C++ 開發者組成的公司的情況。這個行業其中之一就是遊戲開發。
遊戲開發行業的情況
儘管遊戲行業主要使用發展成熟的技術,Rust 也開始在遊戲開發者中佔據一席之地。下面是 Rust 用戶中遊戲開發者們熟悉的名字:
呵呵魚遊戲工作室- 在多個即將發布的遊戲中使用Rust(https://www.rust-lang.org/pdfs/Rust-Chucklefish-Whitepaper.pdf)。
電子藝界- 在SEED中使用Rust(https://twitter.com/ZigguratVertigo/status/1021562281056980993)。
寒霜引擎- 使用Rust做後台處理(https://twitter.com/Ca1ne/status/983612241235804160)。
Ready at Dawn工作室- 所有新開發都使用Rust(https://twitter.com/AndreaPessino/status/1021532074153394176)。
Unity- 在數據工程中使用Rust(https://twitter.com/bltroutwine/status/1002234680949719040)。
我們還看到其他獨立開發者在自己的遊戲中使用Rust(https://twitter.com/SergiusIW/status/1021236971786694656)。
跟前面的情況類似,我們在遊戲開發者中也看到了相似的情況。最初的使用目標很明確,主要用於後台處理或與數據相關的項目。之後,Rust 會逐漸進入核心開發領域,甚至用 Rust 開發整個遊戲。
工作
在進行 2017 年 Rust 問卷調查(https://blog.rust-lang.org/2017/09/05/Rust-2017-Survey-Results.html)時,人們不使用 Rust 的很大原因之一就是公司不使用。當時還沒有使用 Rust 的工作。
2018 年,隨著越來越多的公司和工作室開始接受 Rust,這個現象有沒有好轉呢?
簡單來說,是的,儘管還有很大的增長空間。快速瀏覽下 LinkedIn 上的工作數量,可以看出 Amazon 等公司以及許多與區塊鏈、安全、科學、健康等有關的公司都提供相當數量的 Rust 工作機會。當然,與 Go 或 TypeScript 等語言的工作機會相比,仍然有很大的差距。
看完公司使用 Rust 的情況,Rust 社區的發展情況又如何?
社區和統治
在過去,語言可以單獨靠商業開發來支持。但現在,語言的社區才是語言的基礎。社區能帶來新用戶,支持新項目,並給項目的發展方向定下基調。
全世界有 130 多個 Rust 開發者見面會
Rust 社區中的個人部分——見面會,在過去九個月內增長了 30%,現在在全世界有 130 多個。我們可以看到,這些會議的數量有著穩步增長,從而用戶可以獲得更多的培訓機會和網路。
我們還看到,與上次報道相比(http://www.jonathanturner.org/2017/10/fun-facts-about-rust-growth.html),在線社區也有顯著的增長。例如,Rust reddit 論壇最近超過了四萬用戶(九個月之前才有兩萬九千用戶),GitHub 代碼庫有了三萬星(從九個月前的 24000 星增長),官方 Rust 推特有了將近三萬一千粉絲(九個月前為兩萬四千)。
這種熱情也影響了統治 Rust 的團隊。綜合來看,Rust 團隊在過去九個月內增長了一倍,現在在不同的團隊內擁有 100 多個崗位(https://www.rust-lang.org/en-US/team.html)。範圍也增大了許多,新的團隊現在覆蓋了基礎設施、開發者體驗和依賴管理等。
結論
本文只是 Rust 在業界和軟體開發社區中的一些使用數據。從這些數據很難推斷出整體的途徑,更難預測到未來的情況。但即使如此,我們已經能看到 Rust 的曙光。
Rust 的明天會怎樣?每個人都會有不同的看法。就我個人而言,我會繼續觀望並為 Rust 喝彩。你怎麼看呢?
原文:http://www.jonathanturner.org/2018/07/snapshot-of-rust-popularity.html
作者:Jonathan Turner,Mozilla工程師。
譯者:彎月,責編:屠敏
※蘋果封殺加密貨幣!
※一篇可能讓你每年多賺5萬的寫簡歷技術貼!
TAG:CSDN |