C++

Teilen:

Diese Fragen wurden nur Entwickler*innen gestellt, die C++ als eine ihrer drei primären Programmiersprachen angegeben hatten.

Teilen:

Welche C++-Standards verwenden Sie regelmäßig?

Diego Rodriguez-Losada Gonzalez

Leitender Architekt, JFrog

Keine Überraschungen bei der Verbreitung von C++23 und früheren Standards: Die Umstiegszahlen sind praktisch die gleichen wie in den letzten Jahren, nur das Zeitfenster verschiebt sich. C++23 hatte einen Nutzungsanteil von 10% im Jahr 2023, etwas weniger als C++20 im Jahr 2020 (12%), was wahrscheinlich mit der Anzahl der neuen Features zusammenhängt, die C++20 im Vergleich zu C++23 mitbrachte.

Inbal Levi

Leitende Softwareentwicklerin bei MPGC Services Ltd (Millennium), Mitglied des WG21-Ausschusses

Es ist schön, dass ein so großer Teil der Embedded- und Gaming-Branche bereits C++20 verwendet. Diese Version erweitert die zur Kompilierungszeit verfügbaren Fähigkeiten, was für diese Branchen mit einem starken Schwerpunkt auf der Laufzeitperformance sehr vorteilhaft ist. Ich hoffe, dass C++23 in den kommenden Jahren eine ähnliche Verbreitung erreichen wird.

Bryce Adelstein Lelbach

Hauptarchitekt bei NVIDIA

Ein großer Sprung in der Verbreitung von C++20 ergibt Sinn, da die Implementierungen inzwischen erheblich ausgereifter und funktionsreicher sind. Ich denke, wir werden in den nächsten Jahren in einem Großteil der Community einen erheblichen Umschwung von C++17 zu C++20 als Basisdialekt erleben.

Einführung von C++-Standards

Diego Rodriguez-Losada Gonzalez

Leitender Architekt, JFrog

57% derjenigen, die C++98/03 verwenden, haben nicht vor, auf einen anderen Standard zu wechseln – das könnte als enttäuschend aufgefasst werden, aber wenn wir bedenken, dass nur noch 8% der Befragten C++98/03 verwenden, bedeutet dies, dass nur etwa 4% des weltweiten C++-Codes bei diesem alten Standard bleibt – das ist kein schlechter Wert und mit anderen Programmiersprachen vergleichbar.

Ist in Ihrem aktuellen Projekt die Nutzung der folgenden C++20-Merkmale innerhalb der nächsten 12 Monate geplant?

Diego Rodriguez-Losada Gonzalez

Leitender Architekt, JFrog

Es gab zwar in letzter Zeit enorme Fortschritte bei den Build-Systemen und dem Ökosystem zur Unterstützung von C++20-Modulen, aber es erscheint mir doch zu optimistisch, wenn die Hälfte der Befragten im nächsten Jahr den Einsatz von C++20-Modulen plant (ich nehme an, in der Produktion). Ich glaube nicht, dass wir in den nächsten 12 Monaten soweit sein werden.

Inbal Levi

Leitende Softwareentwicklerin bei MPGC Services Ltd (Millennium), Mitglied des WG21-Ausschusses

Ich freue mich wirklich über die schnelle Verbreitung von Features in der Embedded-Welt, die traditionell dafür bekannt ist, Neues nur langsam zu übernehmen. Ich glaube, das hängt auch mit den enormen Vorteilen zusammen, die C++20 im Embedded-Bereich bieten kann.

Bryce Adelstein Lelbach

Hauptarchitekt bei NVIDIA

Ich frage mich, wie viele Menschen Module wirklich ausprobiert haben. Es gibt jede Menge Interesse, aber nicht so viel praktischen Einsatz.

Welche IDE bzw. welchen Editor nutzen Sie bei der C++-Entwicklung am meisten?

Diego Rodriguez-Losada Gonzalez

Leitender Architekt, JFrog

Der Markt wird eindeutig von Microsoft und JetBrains beherrscht. Das schnelle Wachstum von VS Code scheint langsam nachzugeben (zumindest im C++-Bereich), und mit gleichen Anteilen für die drei Hauptakteure – CLion, VS und VS Code – scheint etwas Stabilität einzukehren.

Gibt es Unit-Test-Frameworks, die Sie regelmäßig verwenden?

Diego Rodriguez-Losada Gonzalez

Leitender Architekt, JFrog

29% schreiben immer noch keine Unit-Tests für ihren C++-Code – eine traurige Erkenntnis. Auch wenn dieser Wert im Laufe der Jahre langsam zurückgeht, verläuft die Entwicklung nicht schnell genug. Die Zukunft der Sprache hängt auch davon ab, ob solche Probleme gelöst werden.

Inbal Levi

Leitende Softwareentwicklerin bei MPGC Services Ltd (Millennium), Mitglied des WG21-Ausschusses

Ich bin überrascht, wie viele Entwickler*innen Unit-Tests ohne Frameworks schreiben. Im Ausschuss gibt es Bemühungen, das Thema Paketmanager voranzutreiben. Ich hoffe, dass dadurch diese Zahlen in den nächsten Jahren zurückgehen werden – sowohl der Anteil derjenigen, die gar keine Unit-Tests schreiben, als auch der Anteil derer, die dies ohne Frameworks tun.

Wie verwalten Sie Fremdbibliotheken in C++?

Diego Rodriguez-Losada Gonzalez

Leitender Architekt, JFrog

Es ist gut, dass immer weniger Entwickler*innen Bibliotheken manuell anhand der beiliegenden Anweisungen kompilieren. Es besteht Hoffnung, dass durch automatisierte Lösungen diese Praxis, die es nur im C- und C++-Ökosystem gibt, weiter zurückgehen wird.

Inbal Levi

Leitende Softwareentwicklerin bei MPGC Services Ltd (Millennium), Mitglied des WG21-Ausschusses

Ich sehe darin ein klares Zeichen dafür, dass eine breite Unterstützung von Paketmanagern in der C++-Community benötigt wird.

Bryce Adelstein Lelbach

Hauptarchitekt bei NVIDIA

Früher oder später kommen wir an einen Wendepunkt, an dem diese Paketmanager (vcpkg, Conan usw.) so ausgereift und weit verbreitet sind, dass sie zu einem Defacto-Standard werden. Aber dieser Punkt ist noch nicht erreicht.

Welche Projektmodelle oder Build-Systeme verwenden Sie regelmäßig?

Bryce Adelstein Lelbach

Hauptarchitekt bei NVIDIA

Es ist sehr interessant zu sehen, dass CMake Marktanteile verliert, während Ninja seine Anteile ausbaut. Dieser Trend war mir nicht bekannt. Vielleicht ist es nur ein Rauschen in den Daten, aber angesichts des bisherigen rasanten Wachstums von CMake legen diese Daten nahe, dass die maximale Sättigung erreicht sein könnte.

Welche Compiler verwenden Sie regelmäßig?

Welche anderen Programmiersprachen verwenden Sie in Ihren Projekten zusammen mit C++?

Diego Rodriguez-Losada Gonzalez

Leitender Architekt, JFrog

Python ist ein weiteres sehr nützliches Tool im Arsenal der C++-Entwickler*innen.

Bryce Adelstein Lelbach

Hauptarchitekt bei NVIDIA

Mehr JavaScript und Rust in Kombination mit C++ – dies scheint hier der Trend zu sein. Angesichts der zunehmenden Beliebtheit von Rust ist es überraschend, dass die Kombination Rust + C++ nicht schneller wächst. Dies deutet darauf hin, dass der Einsatz von Rust in bestehenden Projekten schwieriger sein könnte als in neuen Projekten.

Welche der folgenden Tools verwenden Sie oder Ihr Team zur Durchsetzung von Richtlinien, zur Sicherung der Codequalität oder zur Codeanalyse?

Bryce Adelstein Lelbach

Hauptarchitekt bei NVIDIA

Für mich ist der Rückgang bei den IDE-internen Analysewerkzeugen ein Hinweis darauf, dass die Leute statische Analysen in ihr CI-System integrieren, zum Beispiel indem sie den statischen Analyzer Clang-Tidy/ClangFormat/Clang in GitHub Actions ausführen.

Wie führen Sie oder Ihr Team Codeanalysen durch?

Welche Tools oder Techniken verwenden Sie, um die Build-Zeiten Ihrer C++-Projekte zu optimieren?

Diego Rodriguez-Losada Gonzalez

Leitender Architekt, JFrog

Vor fünf bis zehn Jahren wurde der Markt für C++-IDEs im Wesentlichen von einem einzigen Produkt beherrscht, nämlich dem Windows-spezifischen Visual Studio. Der Zugang zu einer guten IDE war für viele der einzige Grund, unter Windows zu entwickeln. Heute gibt es mit JetBrains und Microsoft zwei große Anbieter in diesem Bereich, was für die Benutzergemeinde von großem Vorteil ist. Dank Visual Studio Code und CLion haben heute Entwickler*innen, die nicht unter Windows arbeiten, einen viel besseren Zugang zu IDEs.

Danke, dass Sie sich die Zeit genommen haben!

Wir hoffen, dass Sie unseren Bericht nützlich fanden. Teilen Sie diesen Bericht im Freundes- und Kollegenkreis.

Wenn Sie Fragen oder Anregungen haben, schreiben Sie uns bitte unter surveys@jetbrains.com.