C++

共有:

これらの質問は 3 つの主要プログラミング言語の 1 つに C++ を選択した開発者にのみ提示されました。

共有:

どの C++ 標準を定期的に使用していますか?

8%

C++98 / C++03

27%

C++11

21%

C++14

43%

С++17

29%

C++20

10%

С++23

13%

分からない

6%

C++98 / C++03

28%

C++11

27%

C++14

48%

С++17

37%

C++20

14%

С++23

13%

分からない

5%

C++98 / C++03

25%

C++11

15%

C++14

48%

С++17

39%

C++20

16%

С++23

10%

分からない

Diego Rodriguez-Losada Gonzalez

JFrog リードアーキテクト

C++23 以前の標準の採用度が高いことは驚くことではありません。採用パターンは近年と事実上変わっておらず、期間が変わっただけです。C++23 は 2023 年に 10% の採用率を見せており、2020 年の C++20 よりわずかに低下していますが、これは C++23 に比べて C++20 に導入された新機能の数の多さに関連していると思われます。

Inbal Levi

MPGC Services Ltd(Millennium)リードソフトウェアエンジニア、WG21 委員会メンバー

エンベデッドおよびゲーム業界では大半がすでに C++20 を使用しているのは素晴らしいことです。このバージョンはコンパイル時の機能を拡張しているため、実行パフォーマンスを非常に重視している業界にとっては非常に有益です。今後数年にわたって C++23 でも同じような採用率が見られることを願っています。

Bryce Adelstein Lelbach

NVIDIA 主任アーキテクト

C++20 の採用率が大幅にアップしたのも当然です。実装が成熟し、機能が完全になってきたわけですから。今後数年間にわたって「基本」のダイアレクトがコミュニティの大半で C++17 から C++20 に大きくシフトしていくと思います。

C++ 標準の移行

57%

いいえ。別の C++ 標準に移行する予定はない

12%

C++11

2%

C++14

16%

С++17

9%

C++20

5%

С++23

50%

いいえ。別の C++ 標準に移行する予定はない

1%

C++98 / C++03

4%

C++14

21%

С++17

13%

C++20

10%

С++23

42%

いいえ。別の C++ 標準に移行する予定はない

2%

C++98 / C++03

5%

C++11

25%

С++17

19%

C++20

7%

С++23

45%

いいえ。別の C++ 標準に移行する予定はない

1%

C++11

1%

C++14

31%

C++20

22%

С++23

Diego Rodriguez-Losada Gonzalez

JFrog リードアーキテクト

C++98/03 を使用している開発者の 57% が別の標準規格に移行する予定がない?これは残念なことですが、概してわずか 8% の回答者がまだ C++98/03 を使用しており、これは世界の C++ コードの約 4% のみがこの古い標準規格のままだということです。これは悪い数値ではなく、他のプログラミング言語と類似しています。

あなたの現在のプロジェクトでは今後 12 か月間に以下の C++20 機能を使用する予定ですか?

48%
53%

概念

43%
49%

モジュール

32%
29%

コルーチン

3%
3%

その他

29%
21%

何も予定していない

Diego Rodriguez-Losada Gonzalez

JFrog リードアーキテクト

最近はビルドシステムとエコシステムで C++20 モジュールをサポートする取り組みが大幅に進展していますが、翌年に C++20 モジュールを使用する予定がある(おそらく本番環境で)回答者の楽観的すぎるように思います。今後 12 か月間で達成できるとは思いません。

Inbal Levi

MPGC Services Ltd(Millennium)リードソフトウェアエンジニア、WG21 委員会メンバー

エンベデッド業界で機能の採用率が速まっていることは本当に嬉しいことです。これまでは採用が遅れていると認識されていたためです。これは C++20 が組み込みの分野にもたらす素晴らしいメリットにも関連していると思います。

Bryce Adelstein Lelbach

NVIDIA 主任アーキテクト

実際にモジュールを使用しようとした人がどれくらいいるのか気になります。関心は高いですがそれほど採用されていません。

C++ 開発ではどの IDE またはエディターを最もよく使用していますか?

27%

Visual Studio Code

26%

CLion

26%

Visual Studio

4%

Vi/Vim

3%

Qt Creator

2%

Android Studio

2%

Xcode

1%

NetBeans

1%

Sublime

1%

Emacs

1%

KDevelop

1%

AppCode

1%

Eclipse CDT

4%

その他

34%

Visual Studio Code

29%

CLion

19%

Visual Studio

6%

Vi/Vim

3%

Qt Creator

1%

NetBeans

1%

Sublime

2%

Emacs

2%

Eclipse CDT

3%

その他

20%

Visual Studio Code

30%

CLion

30%

Visual Studio

2%

Vi/Vim

1%

Qt Creator

1%

Android Studio

2%

Xcode

2%

Sublime

2%

Emacs

1%

KDevelop

1%

Eclipse CDT

1%

Atom

8%

その他

Diego Rodriguez-Losada Gonzalez

JFrog リードアーキテクト

市場は明らかに Microsoft と JetBrains が席巻しています。VS Code の急速な伸びがようやく落ち着いたようです(少なくとも C++ オーディエンスの間では)。CLion、VS、VS Code の 3 つの主力ツールの使用割合が安定して均等になり始めているようです。

どのユニットテストフレームワークを使用していますか?

26%

29%

C++ のユニットテストは書いていない

17%

16%

ユニットテストは書いているがフレームワークは使用していない

35%

33%

GoogleTest

12%

12%

Catch

9%

9%

CppUnit

Diego Rodriguez-Losada Gonzalez

JFrog リードアーキテクト

29% が依然として C++ コードのユニットテストを書いていないのは残念です。この数値が年を追うごとに低下しているとはいえ、ペースが遅すぎます。言語の未来はこのような状況を解決することにも懸かっています。

Inbal Levi

MPGC Services Ltd(Millennium)リードソフトウェアエンジニア、WG21 委員会メンバー

フレームワークを使わずにユニットテストを書いている開発者の数に驚きです。委員会ではパッケージマネージャーに関する話題を促進する取り組みがありますが、それによってユニットテストを書かない開発者とフレームワークなしで書いている開発者の数が減ることを願っています。

サードパーティの C++ ライブラリをどのように管理していますか?

25%

24%

ライブラリのソースコードをビルドに組み込んでいる

21%

21%

システムパッケージマネージャーを使用している

24%

19%

ライブラリを手順に従って別々にコンパイルしている

18%

18%

インターネットからビルド済みのライブラリをダウンロードしている

14%

15%

依存関係はない

Diego Rodriguez-Losada Gonzalez

JFrog リードアーキテクト

独自の命令を使ってライブラリを手動でコンパイルする開発者が減ってきているのは良い事です。自動ソリューションの使用により、このような C と C++ のエコシステムへの固有の手法が今後も減ることに期待です。

Inbal Levi

MPGC Services Ltd(Millennium)リードソフトウェアエンジニア、WG21 委員会メンバー

C++ コミュニティ全体でパッケージマネージャーの広範なサポートが必要だということをよく表していると思います。

Bryce Adelstein Lelbach

NVIDIA 主任アーキテクト

いずれはこれらのパッケージマネージャー(vcpkg、Conan など)が十分に成熟して広範に使用され、事実上の標準になる変曲点を迎えるでしょう。しかし、今はまだそこには達していません。

どのプロジェクトモデルまたはビルドシステムを定期的に使用していますか?

57%

54%

CMake

33%

29%

Visual Studio プロジェクト

33%

28%

Makefile

11%

15%

Ninja

9%

6%

Gradle

Bryce Adelstein Lelbach

NVIDIA 主任アーキテクト

CMake の市場シェアが下落し、Ninja が上昇したのは非常に興味深いものです。このトレンドには気づきませんでした。おそらく単なるノイズだと思いますが、CMake はこれまで急速な伸びを見せてきたわけですから、このデータはそのピークに達したことを示しているのでしょう。

どのコンパイラーを定期的に使用していますか?

65%

GCC

36%

Clang

31%

MSVC

13%

Clang-cl

11%

Intel

9%

Intel LLVM

7%

マイクロコントローラー用のコンパイラー

3%

カスタム

2%

その他

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

45%

Python

29%

C

16%

シェルスクリプト言語

14%

JavaScript

13%

Java

12%

SQL

10%

HTML / CSS

10%

C#

5%

Rust

5%

アセンブリ

4%

Go

4%

Lua

3%

TypeScript

3%

MATLAB

2%

Kotlin

2%

PHP

2%

Visual Basic

2%

Perl

1%

Objective-C

Diego Rodriguez-Losada Gonzalez

JFrog リードアーキテクト

Python も C++ 開発者のツールベルトに入れるツールとしては非常に便利です。

Bryce Adelstein Lelbach

NVIDIA 主任アーキテクト

ここでは C++ と組み合わせて使用されている JavaScript と Rust の増加傾向が見られます。Rust の人気が上昇している中、Rust + C++ の伸びがそれほど急速でないのには驚いています。Rust を既存のプロジェクトで使用する方が(新規プロジェクトで使用するよりも)困難ということでしょう。

あなたや所属チームがガイドラインの強制またはその他のコード品質 / 解析に使用しているツールはどれですか?

37%

31%

使用中の IDE が提供するツール

24%

27%

Clang-tidy

21%

24%

ClangFormat

17%

18%

Clang-analyzer / Clang Static Analyzer

10%

11%

Cppcheck

Bryce Adelstein Lelbach

NVIDIA 主任アーキテクト

IDE が提供する解析ツールの数値が低下しているのは、GitHub Actions で Clang-tidy/ClangFormat/Clang 静的アナライザーを実行するなど、静的解析を CI に統合している人がいることを示しているのだと思います。

あなたや所属チームはどのようにコード解析を実行していますか?

50%

必要なコンパイラーのチェックを有効にしてコンパイル時に実行している

27%

コード解析は CI/CD パイプラインに統合されている

23%

コード解析は実行していない

19%

動的解析を使用している

18%

開発者のマシンでサードパーティの静的コード解析ツールを実行している

1%

その他

C++ プロジェクトのビルド時間を最適化するために、どのツールまたは手法を使用していますか?

39%

ヘッダーのインクルードと依存関係の最適化

28%

プリコンパイル済みヘッダー

23%

ソースファイルのコンパイルの並列化

19%

コンパイラーのキャッシュ

14%

モジュール

12%

インクリメンタルリンク

6%

Unity ビルド

4%

Incredibuild

1%

Electric Cloud

1%

その他

32%

何も予定していない

46%

ヘッダーのインクルードと依存関係の最適化

26%

プリコンパイル済みヘッダー

29%

ソースファイルのコンパイルの並列化

22%

コンパイラーのキャッシュ

17%

モジュール

14%

インクリメンタルリンク

6%

Unity ビルド

2%

Incredibuild

1%

Electric Cloud

1%

その他

29%

何も予定していない

46%

ヘッダーのインクルードと依存関係の最適化

35%

プリコンパイル済みヘッダー

25%

ソースファイルのコンパイルの並列化

24%

コンパイラーのキャッシュ

16%

モジュール

16%

インクリメンタルリンク

11%

Unity ビルド

7%

Incredibuild

1%

Electric Cloud

2%

その他

28%

何も予定していない

Diego Rodriguez-Losada Gonzalez

JFrog リードアーキテクト

5~10 年前の C++ IDE 市場は基本的に Visual Studio という Windows 限定の製品に席巻されていました。開発者は良質な IDE を利用するためだけに Windows で開発していたのです。現在のこの分野に JetBrains と Microsoft の 2 大ベンダーがあり、ユーザーにとっては素晴らしい環境になっています。Visual Studio Code と CLion のおかげで、IDE は Windows 以外の開発者にとってはるかに利用しやすいものになりました。

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

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

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