當前位置:
首頁 > 科技 > 打敗 Python、JS、C#成最受歡迎編程語言,是時候掌握 Rust 了嗎?

打敗 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工程師。

譯者:彎月,責編:屠敏


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 CSDN 的精彩文章:

蘋果封殺加密貨幣!
一篇可能讓你每年多賺5萬的寫簡歷技術貼!

TAG:CSDN |