打敗 Python、JS、C# 成最受歡迎程式語言,是時候掌握 Rust 了嗎?

2021-02-26 CSDN

無論何時,程式語言的流行度都是一個經典且火熱的討論話題。而怎樣衡量流行度?如果兩種語言的目標和適用人群迥異,該如何較出高下?事實上,有許多方法可以衡量程式語言的流行度。例如,可以查看 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 公眾號秉持著「與千萬技術人共成長」理念,不僅以「極客頭條」、「暢言」欄目在第一時間以技術人的獨特視角描述技術人關心的行業焦點事件,更有「技術頭條」專欄,深度解讀行業內的熱門技術與場景應用,讓所有的開發者緊跟技術潮流,保持警醒的技術嗅覺,對行業趨勢、技術有更為全面的認知。

如果你有優質的文章,或是行業熱點事件、技術趨勢的真知灼見,或是深度的應用實踐、場景方案等的新見解,歡迎聯繫 CSDN 投稿,聯繫方式:微信(guorui_1118,請備註投稿+姓名+公司職位),郵箱(guorui@csdn.net)。

————— 推薦閱讀 —————


相關焦點

  • 回溯 Rust 2020:正在成為最受歡迎的程式語言
    【CSDN 編者按】在 2020 年,Rust 的 Github Star 數達到了
  • 回溯 Rust 2020:正成為最受歡迎的程式語言
    這些數據無不在說明,Rust 正成為最受歡迎的程式語言。當今世界科技發展日新月異,2015 年 5 月 15 日,Rust 1.0 版本正式面世,在這五年多的時間中,Rust 改變了許多,憑藉自身的優勢,Rust 也連續四年成為開發者最受歡迎的程式語言。目前,也有越來越多的項目及企業開始選擇使用 Rust 作為其應用及工具開發語言。
  • 2021 年這 8 種程式語言最流行:R 入榜原來是這個原因
    怎樣判斷哪種程式語言最流行?正如要挑選最受歡迎的冰激凌一樣,每個人都有自己的最愛。實際上,由於各種原因,不同的開發人員喜歡不同的程式語言,當你認為一種程式語言可能佔主導地位時,一種新的程式語言出現了,或者一種老的語言與新的應用聯繫起來了。
  • Rust FFI 編程 - 其它語言調用 Rust 代碼 - Python
    為了不同語言生態中的開發者可以快速地使用 Rust 語言以及 Rust 生態中優秀的工具或庫,Rust FFI 編程計劃通過編寫一系列文章,專門介紹 C 語言之外的其它語言如何調用 Rust 導出庫。目前準備介紹的語言列表有 Python,Ruby,Node.js,Go,Java,PHP。
  • 縱觀17年間最受歡迎的程式語言排行
    最受歡迎的程式語言,這幾本上是每個入行程式設計師必看的新聞動態,今天為大家整理來了最為熱門的程式語言視頻,一起來感受一下程式語言排行的變化。
  • 20年來首次,Python打敗Java成全球第二大受歡迎程式語言!
    日前,統計各類程式語言受歡迎程度的TIOBE,公布了今年11月最新一期的程式語言排行榜。在此次更新中,TIOBE直接將標題描述為「Python勢不可擋」。因為在榜單中,Python的增長率高達2.27%,並最終以12.12%的受歡迎程度超過了Java的11.68%,成為世界第二大流行程式語言。
  • 趕超 Python 與 Java,JavaScript 問鼎最受歡迎的程式語言
    畢竟大多數常見的程式語言的基本概念都大同小異,且對於編程新手來說,大多數程式語言看起來都差不多,它們可以讓你獲得近乎相同的結果。但從開發人員的角度來看,程式語言不僅是一種工具,而且選擇正確的程式語言將會影響一個人的職業生涯、錢途以及未來生活的幸福指數。在此,本文將基於 2018 年的開發者生態系統報告,剖析當前主流程式語言的趨勢,探索在新的一年中,最具潛力、最值得學習的程式語言。
  • 蘋果Swift成最受歡迎程式語言
    最近蘋果手錶預訂火爆,再次揭示了科技行業一個規律——「蘋果做什麼什麼都能火」。主要針對全世界157個國家的2.6萬名開發者。這些樣本中,6800人為全職程式設計師,1900人為移動開發員,1200人為前端開發員,1.2萬人為其他類型的開發者。調查方向受訪者問及,在過去一年中曾經使用什麼程式語言來開發軟體,哪種語言用的最多。民調結果顯示,蘋果公司推出的Swift語言,以77.6%的覆蓋率,在受歡迎程度上名列第一。超過了其他許多知名度較高的開發語言。
  • 為什麼 Python 不是未來的程式語言?
    Python 現在如此火爆,已發展成為一種非常通用的語言,無論是從入門級選手到專業技術數據挖掘、科學計算、圖像處理、人工智慧,Python 都可以勝任。它會是未來的程式語言嗎?它是完美無缺的程式語言嗎?有人發出了不同的聲音。此前,InfoQ 中文站曾編譯過相關文章,今天,我們翻譯並分享了 Rhea Moutafis 對 Python 的看法,權當一家之言吧!
  • Rust與Python:為什麼Rust可以取代Python
    原文:https://blog.logrocket.com/rust-vs-python-why-rust-could-replace-python/作者:David Adeneye Abiodun第162期文章:針對JavaScript開發人員的Rust簡介,
  • 2021年2月中國程式語言排行榜
    數據 | 新羅區智聯網絡技術工作室程式語言比例(市場份額)工資rank
  • 為什麼Python程式語言在程式設計師中如此受歡迎?
    在20世紀80年代,沒有人想到一種受ABC(一種被拋棄的程式語言)所啟發的程式語言將成為21世紀最受歡迎的語言之一。說到Python程式語言的目標,有-當你向非程式設計師詢問Python時,他們中的大多數或所有人都會想到在亞洲國家發現的蛇。但是當你問任何一個開發者時,興高採烈的眼神足以告訴你,正是這些東西讓他們的生活變得更簡單、更輕鬆。甚至它的標誌也描繪了兩條蛇的藍色和黃色。但它名字背後的真正靈感是蒙蒂蟒蛇的飛行馬戲團;一個受歡迎的BBC喜劇電視節目。
  • 2020年程式語言趨勢解讀:編程世界之未來握於誰手?
    在整個程序開發行業,程式語言歷經了從面向過程的C、到面向對象的C++、再到兩個改裝版Java和C#區塊鏈行業的程式語言也發生了很大的變化:2018年度,根據德勤報告,應用於以太坊和Hyperledger C++是最青睞的語言,谷歌開發的Go語言則是是第二大區塊鏈開發語言。在2019年程式語言的應用又有哪些趨勢呢?
  • 2021程式語言「後浪」趨勢預測:JavaScript、Python熱度不減,但崛起最快的卻是它
    不過我們也能發現,它們的受歡迎程度呈現一個曲線下降的趨勢。作為一名開發者,Mr Herath 最喜歡的語言是 JavaScript。在一篇 Medium 文章中,他為我們分析了 2021 年可能最受歡迎的幾種程式語言。JavaScript、Python 或者 Go?在討論每種語言的優點之前,先看一些在線調查的結果。
  • 如何在Linux中安裝Rust程式語言
    Rust(俗稱Rust-Lang)是一種相對較新的開源實用系統程式語言,運行速度極快,可防止段錯誤,並保證線程安全。
  • 【Swift】蘋果最受歡迎的程式語言
    最近,程式設計師開發問答服務網站「StackOverflow」進行了一次民調。調查方向受訪者問及,在過去一年中曾經使用什麼程式語言來開發軟體,哪種語言用的最多。民調結果顯示,蘋果公司推出的Swift語言,以77.6%的覆蓋率,在受歡迎程度上名列第一。超過了其他許多知名度較高的開發語言。C++11語言覆蓋率為75.6%,排名第二。微軟公司推出的已經有多年歷史的C#語言,覆蓋率僅為67.2%,在榜單中排名倒數第二。
  • 2021年1月程式語言排行榜:Python年度程式語言
    ,這已經是Python第四年取得TIOBE年度程式語言稱號。這個稱號是授予給一年裡最受歡迎的程式語言,Python在2020年實現了2.01%的增長,C++緊隨其後,本年度增長1.99%,緊接著是C語言(增長1.66),Groovy(+1.23%)和R(+1.10%)。
  • C++ 最難學?最易/難學習的程式語言 TOP 5 來了!
    你還記得你第一次寫代碼的時候使用的是什麼程式語言嗎?
  • 手把手教您掌握C#(Winform)軟體設計
    學習一門高級程式語言,不但可以拓展自己的視野,改變看待問題的角度,最重要的是它可以使你迅速和和同行拉開差距,快速脫穎而出!隨著智能製造的發展,C#在工業領域的應用越來越廣泛,各種運動控制板卡的大量使用、機器視覺的廣泛使用、為了技術保密定製開發HMI,MES等等,這些都有C#的影子!
  • Python,美國頂尖大學裡最受歡迎的編程入門語言
    當然有些學校的課程編號並不是以這種方式進行的,因此我也稍微篩選了一下課程,選出了符合上述 CS1 以及 CS0 編號要求的課程。  研究結果  下面的圖表展示了這 39 個學校的編程基礎課程使用語言的狀況。