Rust

共有:

このセクションの質問は、Rust を使用言語の 1つとして示した開発者に提示されました。

Rust をどのように使用していますか? 

67%
64%

個人用途 / サイドプロジェクト

61%
60%

趣味

18%
20%

仕事

1%
2%

その他

Florian Gilcher

Ferrous Systems 取締役

この数字はいいですね。Rust が伸びており、ここで見える相対的な数字に変化がないということは、仕事が増えており、その仕事に採用できる新規参入者のグループがかなりの数存在するということです。求人を出す際には「Rust 経験年数 X 年」の要件を外すと、有能なホビイストの人材プールにアクセスできるでしょう。このような人たちはすでにプロのコーダーである場合がほとんどです。健全な成長パイプラインが存在します。

Luca Palmieri

Mainmatter 主任エンジニアリングコンサルタント

Rust は職場で着実に伸びており、本番環境での採用数が増えています。それと同時に、Rust の仕事への需要も空きポジションの数よりはるかに多い状態が続いています。初めての Rust のポジションに就くことを望む開発者にとっては理想的ではありませんが、雇用主にとっては間違いなく朗報です。日々、Rust を使った仕事の機会に飛びつける状態の人材は豊富にいます。

Tim McNamara

Accelerant.dev 創設者、『Rust in Action』著者

この質問に対する回答から、Rust コミュニティには活気に満ちたバランスと多様性があるのがわかります。

Rust で対価を得られる Rust 開発者が増えているのを見るのは嬉しいことです。2023 年と 2022 年を比較すると、1 年で 11 パーセントの変化が見られます。

5 人に 1 人しか仕事で Rust を使用していないのは残念に感じられるかもしれませんが、これは大勢の人がこの言語を学習しているわけですから当然です。この言語への新規参入者が多ければ、この統計が 50% を超えるのは非常に困難です。

Rust を個人的なプロジェクトに使用している人がいるのは非常に健全なことだと思います。創造の手段として Rust を選択しているということだからです。

Rust をどのくらいの期間使用していますか?

17%

1 か月未満

39%

1〜6 か月

19%

6 か月〜1 年

18%

1〜3 年

5%

3 年以上

Tim McNamara

Accelerant.dev 創設者、『Rust in Action』著者

比較的新規のプログラマーに大きな偏りが生じているのは、コミュニティが飛躍的に伸びていることを示しています。

コミュニティのリーダーが覚えておくべきことは、Rust を使用している開発者の 75% 以上は言語経験が 1 年未満であるということです。

エコシステム内のより多くの主要プロジェクトの貢献者数が増えていくことを望んでいます。現時点では 1 人の開発者が保守している重要なクレートが多数あります。

Luca Palmieri

Mainmatter 主任エンジニアリングコンサルタント

Rust には高い支持率があります。StackOverflow では 7 年連続で最も愛されるプログラミング言語として投票されています。これは、Rust を学習している開発者はその使用を継続する意思があるということです。

それと同時に Rust エコシステムへの新しい開発者の流入も激しい状態が続いており、回答者の半数以上が Rust を使い始めたばかり(6 か月未満)だと答えています。

高い支持率と新しい開発者の大幅な流入は、エコシステム全体にとって素晴らしいニュースです!

Florian Gilcher

Ferrous Systems 取締役

これは特に新規参入者にとって朗報です。どのチームにも 10 年以上の経験を持つ同僚がいる他の言語に比べると、今 Rust を始めれば簡単にこの分野のエキスパートになれるチャンスがあります。Rust に取り掛かるのに最適な時期は今です!

どのプログラミング言語を Rust と共にプロジェクトで使用していますか?

19%

JavaScript / TypeScript

17%

Python

13%

SQL

13%

シェルスクリプト言語

11%

C++

11%

C

Luca Palmieri

Mainmatter 主任エンジニアリングコンサルタント

回答者の半数以上は多言語対応プロジェクトに取り組んでおり、他のテクノロジーを Rust と共に使用しています。Rust API が支える JavaScript/TypeScript フロントエンド、ネイティブ拡張機能(Rust + Python)、言語混合プロジェクト(C/C++)、ネットワーク越しにやり取りするマイクロサービス(Go、Python、C#、Java など)など、プログラミング言語によって主流のパターンを推測することができます。

Tim McNamara

Accelerant.dev 創設者、『Rust in Action』著者

Rust が他の言語とうまく連携できるのは素晴らしいことです。ここではウェブバックエンド(JS/TS、SQL)と CLI(シェルスクリプト言語)に Rust を使用することの影響が見て取れます。

Rust が JVM 言語の拡張に使用されているか、少なくとも JVM 言語と組み合わせて使用されており、程度は低いものの CLR(C#)で構築された言語の拡張に使用されているのは非常に興味深い兆しです。商用での採用が伸びるにつれて、Rust が複数の言語をコンパイル/ビルドするビルドシステムで適切に動作することを保証するように需要が高まることを期待しています。

どのプログラミング言語から Rust に移行しましたか?

35%

プログラミング言語は変えていない

23%

C++

13%

Java

13%

C

12%

Python

12%

Go

Florian Gilcher

Ferrous Systems 取締役

上記の統計の概要はこの数年間は変化していません。Rust はシステムプログラミング集団向けであり続けているだけでなく、それをはるかに超える範囲を対象にしています!

Tim McNamara

Accelerant.dev 創設者、『Rust in Action』著者

「どのプログラミング言語にも取って代わっていない」の割合が想定よりも約 10 倍以上大きいことに驚いています。

これは Rust がよりとっつきやすくなってきているという良い兆候です。しかし、私たちコミュニティが Rust の教育方法を改善すべきだという私個人の考えは強くなりました。

Rust コードは他の要素とどのように連携していますか?

51%
51%

REST API

53%
43%

言語の相互運用

24%
25%

RPC

22%

WebAssembly / WASI

7%
6%

その他

Tim McNamara

Accelerant.dev 創設者、『Rust in Action』著者

WebAssembly/WASI が上位に入っていることを予想してはいましたが、22% は私の推測をはるかに超えています!

WebAssembly が可能にする相互運用性パターンを深く調べると面白いかもしれません。これは、Rust コードベースをユーザー提供の任意の言語で書かれたプラグインで拡張することに関係しているのでしょうか?それとも、別のプログラミングで書かれた WebAssembly モジュールでアプリケーションをビルドする Spin/Fermyon 実験が成功したということでしょうか?

Luca Palmieri

Mainmatter 主任エンジニアリングコンサルタント

Rust はウェブバックエンドに使われていますね!

FFI を使ったプロジェクトの割合が減少しているのは興味深いことです。

WebAssembly が今後さらに上昇するのを楽しみにしています。Wasm モジュールはサプライチェーン攻撃を強力に防止しますが、これは現時点の Rust オープンソースエコシステムが非常に脆弱な分野です。

Florian Gilcher

Ferrous Systems 取締役

実際に使用されている統合オプションの多様性に驚かされています。また、ほとんどのプロジェクトに何らかの統合コンポーネントがあることを考慮すると、Rust の他のシステムへの幅広い統合にもっと注目したいところですね。

Rust 用 IDE ではどのプラグイン/ユーティリティを使用していますか?

45%

54%

Rust Analyzer

42%

40%

IntelliJ Rust

10%

4%

RLS

3%

Racer

1%

1%

その他

Tim McNamara

Accelerant.dev 創設者、『Rust in Action』著者

ここで一番驚いたのは、商用の選択肢がほとんどないということです。この分野で Rust をこの数年間にわたってサポートしてきた JetBrains に拍手を送ります。

Florian Gilcher

Ferrous Systems 取締役

2 大エディターの回答が大幅に増えているのがうれしいですね。rust-analyzer はサポート廃止となった RLS/Racer のユーザーを取り込んだようですが、IntelliJ Rust は統合されたエクスペリエンスを求めるユーザーには標準的な選択肢のままとなっています。

Luca Palmieri

Mainmatter 主任エンジニアリングコンサルタント

rust-analyzer は 1 年前に Rust 組織に参入し、2 年以上前に始まったプロセスを経て最終的に「公式」言語サーバーとして RLS を正式に置き換えるものになりました。このアンケートは RLS のユーザーベースがようやく rust-analyzer に移行していることを裏付けていますが、代替製品がどんなに優れていても、どんなに需要や調整があっても、エコシステム全体の移行には複雑で時間がかかるという事実を思い出させるものでもあります。

Rust 開発にはどの IDE / エディターを使用していますか?

55%

Visual Studio Code

24%

CLion

21%

IntelliJ IDEA

13%

Vim

3%

PyCharm

3%

Emacs

IDE に最も不足している Rust の機能は何ですか?

32%

ライフタイムの可視化

26%

ネイティブのデバッグ

17%

手続き的マクロのデバッグ

13%

WebAssembly のデバッグ

13%

ウェブフレームワークのサポート

12%

言語横断的なナビゲーションとリファクタリング

Tim McNamara

Accelerant.dev 創設者、『Rust in Action』著者

この機能リストを見ていると、IDE にもっと多くの機能が欲しいと思ってしまいます!ライフタイムの可視化は私も望んでいますが、それが複雑なケースで役立つかどうかは分かりません。結果的には別のミニ言語になってしまい、その解釈について学習する必要が生じる可能性があります。

手続き型マクロが高く評価されていることに驚いています。これほど多くの人が独自の手続き型マクロを書いていることを知りませんでした!

JetBrains が提供できるものがあるとすれば、GitHub Codespaces と同様のエクスペリエンスでしょう。クラウドデスクトップはとても気に入って使用していますが、いつも価格を気にしています。

Luca Palmieri

Mainmatter 主任エンジニアリングコンサルタント

前向きな点から述べましょう。回答者の 3 分の 1 は IDE による Rust のサポート状況に満足しています。これは大きな数字です!

ただ、良いことばかりではありません。ライフタイムなど、Rust 固有の要素についてユーザーをもっと支援する必要があります。手続き型マクロは継続的な課題です。便利であるがゆえに複雑なコードベースにおいては当たり前の手法ですが、広範に使用すると IDE のエクスペリエンスが著しく低下してしまいます。

このような基本的な言語コンストラクトの対応が十分になされれば、IDE がより特殊なユースケース(特定のウェブフレームワークに対する組み込みのサポートなど)に枝葉を広げていくのが楽しみになるでしょう。

Rust のコンパイルにはどのビルドシステムを使用していますか?

93%

Cargo

6%

Make

4%

CMake

1%

Bazel

1%

その他

3%

該当なし

Tim McNamara

Accelerant.dev 創設者、『Rust in Action』著者

回答者の 6% がビルドに Make を使用しているって!?古いツールを使い続ける人がいるんですね。開発者に関して私が気付いたのは、管理について強いこだわりがあるということです。

Luca Palmieri

Mainmatter 主任エンジニアリングコンサルタント

Rust プロジェクトに関して Cargo が首位になっていることに驚きはありません。

通常、Rust コードをどのようにデバッグしていますか?

55%

55%

`println!` または `dbg!` マクロを使用

27%

29%

IDE での UI デバッグ

11%

10%

コンソールでのデバッグ

5%

6%

デバッグしていない

1%

1%

その他

Luca Palmieri

Mainmatter 主任エンジニアリングコンサルタント

全体的には昨年からあまり変わっていません。回答者の間では printIn! を使用したデバッグが一番とっつきやすく、今でも主な手法となっています。ツーリングには確実に不足がありますが、話はそれだけに留まりません。教育にも不足があります。既存のデバッグツールの活用方法を教えるための資料はほとんどありません。

Tim McNamara

Accelerant.dev 創設者、『Rust in Action』著者

println! を使用するのは恥ずかしいことではありません(聞こえがいいようにトレーシングデバッグとでも呼んでもよいでしょう)。ただし、IDE 開発者が本格的なデバッグ機能を非常に使いやすくするために多大な労力を費やしたことは良いことだと思います。デバッガーでプログラムをステップ実行する方法を学習すれば、生産性が大幅に向上します。

Florian Gilcher

Ferrous Systems 取締役

この状況には納得できません。デバッグエクスペリエンスを向上させることは可能であり、IDE の使用がその目的に適した手段のように思えます。しかし、この状況は長年にわたって変わっていないようです。これは「単にコンソールに出力している」ことがいまだに最も好まれる選択肢であるという事実によって証明されています。

Rust 用にどんなプロファイリングツールを使用していますか?

82%

73%

プロファイリングツールは使用していない

15%

IDE にバンドルのプロファイラー

10%

8%

perf

5%

4%

callgrind/cachegrind

4%

3%

gprof

Luca Palmieri

Mainmatter 主任エンジニアリングコンサルタント

Rust プロジェクトでプロファイラーを使用する開発者が急増しています!

それはほぼ IDE にバンドルされたプロファイラーの使用が増えていることが理由でしょう。強力なツールが使いやすくなれば、開発者はそれを利用するものです。

ただ、やるべきことはたくさん残っています。本番環境でも同じ使いやすさでアプリケーションをプロファイリングできるようにすべきなのですが、素晴らしい開発者エクスペリエンスを得るにはほど遠いと言えます。

Florian Gilcher

Ferrous Systems 取締役

バンドルのプロファイラーが比較的人気が高いところを見る限り、プロファイリングは利用しにくいためにあまり行われていないだろうという私の大まかな推測が実証されています。

Rust でどんな種類のプロジェクトを開発していますか?

46%

46%

CLI ツール

37%

39%

システムプログラミング

34%

38%

ウェブ開発

15%

18%

デスクトップ / GUI アプリケーション

16%

17%

ネットワークプログラミング

Luca Palmieri

Mainmatter 主任エンジニアリングコンサルタント

これだからアンケートはやめられません。生データの力で主流とされる意見に異議を唱えられるからです。

Rust はほとんどの人に「システムプログラミング」と同義語に思われていますが、実際はそれだけではありません。回答者の 38% はウェブ開発に使っており、このユースケースについては Rust の「過剰だ」や「難しすぎる」という意見に反しています。私はこれが Rust の次の大きな頂点だと信じており、この予想がデータで実証されるのを楽しみにしています。

Florian Gilcher

Ferrous Systems 取締役

Rust で起きているあらゆる成長にもかかわらず、組み込み/IoT での使用が同じレベルに留まっていることを嬉しく思います。今年の嬉しいサプライズは、デスクトップアプリケーションでの使用の数が高まったことです。常に数はありましたが、私の直感ほどではありませんでした。数値が相互にあまり変化していないということは、比較的形成され安定したエコシステムがどこかへ行きつつあることを示しています。

Tim McNamara

Accelerant.dev 創設者、『Rust in Action』著者

幅広いプロジェクトを見るのはとても新鮮です。この言語で気に入っているのは安全性が保証されていることで、過去にはできなかった領域での実験を自信をもって行えることが挙げられます。

Rust プロジェクトではどんなプラットフォームをターゲットにしていますか?

76%

Linux

46%

Windows

34%

macOS

20%

WebAssembly

10%

組み込み

5%

Android

3%

iOS

1%

その他

Tim McNamara

Accelerant.dev 創設者、『Rust in Action』著者

この多様性には本当に興味深いものがあります。私はサーバーサイド Linux が 90% を大きく上回るはるかに高い数値になると期待していました。これは Rust を使って CLI をビルドする人が多く、趣味やサイドプロジェクトにそれを使用している開発者が大半であることに対応しているのでしょう。

組み込み開発者の割合が非常に高いように思えます。組み込みは非常に少数派だと考えていますが、オペレーティングシステムに依存しないプロジェクトに Rust を使用している献身的で広範なグループの開発者がいることは明らかです。

Florian Gilcher

Ferrous Systems 取締役

またしても、ここに驚きはありません。より多くの保守的なエンタープライズ企業で Rust の採用が進められているため、ターゲットとしての Windows の関連性が高まっているのです。

最後までご覧いただきありがとうございました!

レポートはお役に立ちましたか?
ぜひこのレポートを友人や同僚と共有してください。

ご質問やご提案がございましたら、surveys@jetbrains.comまでお問合わせください。