新的一年即將到來,這意味着一份新的Rust調查將出爐,這是Rust的第三次年度調查。今年首次推出了多語種調查,包括英語在內總共有14種語言。非英語語言的反饋佔比25%,整體創下了5991個反饋的新記錄。
除了反饋數量有所增加,今年參與調查的Rust用戶比例也比以往有所增加。與去年的66.9%相比,今年有近四分之三的反饋來自Rust用戶。
使用Rust的時間
Rust的新用戶在源源不斷地增長。約有23%的Rust用戶使用Rust的時間爲3個月或更短,近四分之一的用戶使用Rust至少2年時間。
超過40%的Rust用戶在使用不到一個月時就感到Rust給他們帶來的效率提升,超過70%的人在使用一年左右感覺到效率提升。但用戶之間存在明顯的差異,仍然有超過22%的用戶尚未感覺到效率提升。
大約25%的用戶在使用Rust一個月左右仍然感覺不到效率提升,所有有必要幫助用戶找到提升效率的方法,以免他們陷入困境。
使用Rust的程度
隨着整體投入的增加,Rust的項目規模越變越大。Rust的中到大型投入(分別爲超過1萬行代碼和10萬行代碼)從2016年的8.9%增長到2017年的16%,今年增長到23%。
我們也看到了Rust常規使用量的增長。每天使用Rust的用戶去年佔17.5%,今年已接近四分之一。總體來說,每週使用Rust的用戶從60.8%上升到66.4%。
Rust的專業知識
Rust的專業技能等級不是一條簡單的曲線,它有兩個高峯:一個是“3”,另一個是“7”,這表明用戶傾向於認爲自己只是初學者,或者經驗豐富,但不一定是專家。
Rust用戶普遍認爲Enums和Cargo是比較簡單的概念,其次是Iterator、Module和Trait。接下來是更難一點的Trait Bounds和Unsafe。最後,最難的是Macros、Ownership & Borrowing和Lifetime。這些難點與我們過去幾年收到的反饋很相似,它們將繼續成爲提高生產力的改進重點,如NLL和Macro系統改進。
我們發現,Rust實際上並不是用戶最熟悉的頂級編程語言,它位於Python之後,屈居第二。
Rust的工具鏈
使用當前穩定版本的用戶數量與去年類似,但讓人感到些許驚訝的是,在工作流程中使用Nightly構建版本編譯器的用戶數量有所增加。使用Nightly構建版本的用戶數量兩年來在持續上升,現在超過了56%(高於去年的51.6%)。
當被問到爲什麼使用Nightly構建版本時,人們迴應的原因有很多,包括:訪問2018版本、asm、async/await、clippy、嵌入式開發、rocket、NLL、proc宏和wasm。
這個數字與去年相比差不多,有7.4%的人表示他們經歷過這種情況。
通常只是一些小的修復,但也有些人報告說,會有一些中等或主要的修復。
通過rustup來安裝的佔了90%,然後是Linux發行包,佔17%。
使用rustfmt和rustdoc的最多,然後是clippy——儘管用戶較少,但使用它的用戶很喜歡這個工具。IDE支持工具Rust Language Server和racer也得到了積極的支持,但在調查中也出現了一些不喜歡的投票和評論。bindgen具有相對較小的用戶羣。
Rust工作流程
Linux仍然是Rust開發人員的大本營,大約80%的Rust開發人員在Linux上開發。Windows的使用量從去年的31%略微增長到今年的34%,這是它連續第二年出現增長。
Linux和Windows仍然是Rust應用程序的主要目標平臺。其他平臺與去年大致相同,但有一個例外:WebAssembly。這項新技術取得了令人矚目的增長,從去年的13%增長到今年的24%,幾乎翻了一番。
領跑兩年的Vim現在終於被VSCode擊敗了,VSCode從去年的33.8%增長到今年的44.4%。
在工作中使用Rust
Rust在工作場所中的增長繼續呈現出緩慢而穩健的態勢。全職和兼職使用Rust從去年的4.4%全職和16.6%兼職增長到今年的8.9%全職和21.2%兼職。全職Rust商業用途增加了一倍。總的來說,Rust的商業使用總量從去年的21%增長到略高於30%。
在公司採用方面,Rust有更多的增長空間。超過三分之一的用戶表示,目前還沒有考慮在未來一年嘗試使用Rust。也有將近一半的非Rust用戶表示這需要公司的支持,這表明需要從公司方面進行拓展或需要讓公司瞭解更多有關Rust的信息。
社區氛圍
Rust社區工作的一個重要組成部分是確保Rust項目對用戶來說是一個溫馨的地方。新用戶應該能夠感到他們被鼓勵去探索和分享想法,並且讓他們做最好的自己。
Rust用戶和非Rust用戶都感覺受到社區的歡迎,儘管還有超過四分之一的人表示不確定。這些反饋中也存在一些區域差異。例如,來自俄羅斯的反饋顯示,感覺自己不受歡迎佔比爲4%,而中國爲8%。
認爲自己在技術方面代表性不足的人數在逐年增長。調查顯示,Rust女性從業者仍然低於行業平均水平。
非Rust用戶
在放棄使用Rust的人當中,超過50%的人在不到一個月的時間內放棄使用Rust。同樣地,大約50%放棄使用Rust的人在放棄之前使用了超過一個月時間。
很多非Rust用戶表示他們確實想學習Rust,但一些因素會影響到他們。首先是他們所在的公司本身不使用Rust。近一半的非Rust用戶因缺乏公司支持而受阻。此外,由於Rust過於複雜,給四分之一的非Rust用戶造成了阻礙。
挑戰
跟往年一樣,我們會問受訪者,Rust有哪些地方需要改進。今年,我們在反饋中看到了一些熟悉的主題以及一些新的主題。今年的十大主題是:
- 需要更好的庫支持;
- 更好的IDE體驗;
- 需要更廣泛地採用Rust;
- 更豐富的工具和支持生態系統;
- 改善的學習曲線;
- 需要重要的語言功能;
- 支持異步編程;
- 支持GUI開發;
- 更好的文檔;
- 改進的編譯時間。
今年,“支持GUI開發”的需求在不斷增長,這說明Rust不僅在服務器端繼續在增長,而且人們感覺將Rust需要延伸到應用程序開發中。
“需要改善Rust營銷策略,很多人都不知道它。”
雖然Rust在某些圈子中可能是衆所周知的,但它仍有成長空間。在很多科技領域,Rust可能還不爲人所熟知。
“專注於提高採用率、教程、書籍、新手經驗培養等方面,這些將在未來幾年帶來好處”。
除了外展之外,更多更好的文檔將吸引到更多的受衆。
“開發者工具的穩定性和成熟度讓開發環境的搭建和應用程序的調試變得更容易。”
很多人提到了IDE支持,不僅指出了RLS的不穩定性和不準確性,還提出了更多的IDE支持,比如調試的便利性。
“生態系統和庫的成熟度很重要,一個良好的“標準”庫生態系統是該語言未來成功的關鍵。”
受訪者強調,需要更完善的庫並增加用戶可以使用的“標準”庫。一些評論指出,這不是維護者的錯,他們已經在努力開發和發佈這些庫,但需要更多的公司參與並提供商業支持。
“人體工學和涵蓋一切的文檔。”
有些人指出,人體工學應該與更豐富的文檔齊頭並進,因爲它們並非相互獨立的概念,應該通過統一的方式將它們融合在一起。
英文原文:https://blog.rust-lang.org/2018/11/27/Rust-survey-2018.html