C++

Paylaş:

Bu sorular yalnızca üç ana programlama dilinden biri olarak C++'ı seçen geliştiricilere gösterildi.

Hangi C++ standartlarını düzenli olarak kullanıyorsunuz?

8%

C++98 / C++03

31%

C++11

25%

C++14

41%

С++17

23%

C++20

14%

Emin değilim

12%

C++98 / C++03

33%

C++11

24%

C++14

41%

С++17

23%

C++20

12%

Emin değilim

9%

C++98 / C++03

31%

C++11

24%

C++14

45%

С++17

25%

C++20

12%

Emin değilim

İstikrarlı bir oranda geçiş olduğunu görmek mükemmel. Özellikle oyun geliştiricilerinin C++20'yi benimsemelerinden oldukça memnunum. Tüm oyun platformlardan gerekli desteği görmeyi heyecanla bekliyorum. Sağlayıcıların bunu hayata geçirmesi zor olsa da beraberinde getireceği konseptler ve kapsamla bu çabaya değeceğine eminim.

Guy Davidson

Mühendislik Uygulamaları Başkanı, Creative Assembly

C++20'nin benimsenme oranına epey şaşırdım. Değişim yaşandığı çok açık. Geçmişe kıyasla günümüzde yeni standartların çok daha hızlı bir şekilde benimsendiğini görüyoruz.

Jason Turner

C++ Eğitmeni, Konuşmacı, Yazar, YouTuber

Kullanıcıların önemli bir kısmının son 5 yılda sunulan sürümleri kullandığını gördüğüme çok sevindim. Ayrıca C++11 öncesi sürümlerin %10'un altına düştüğünü görmek de iyi haber. Birkaç yıl daha geçtiğinde bu sürümleri bu tür anketlere dahil etmeyi de bırakabiliriz!

Titus Winters

Google'da Baş Mühendis

C++ standartlarına geçiş

42%

Hayır, başka C++ standardına geçiş yapmayı planlamıyorum

15%

C++11'e

11%

C++14'e

18%

C++17'ye

16%

C++20'ye

45%

Hayır, başka C++ standardına geçiş yapmayı planlamıyorum

9%

C++14'e

20%

C++17'ye

26%

C++20'ye

41%

Hayır, başka C++ standardına geçiş yapmayı planlamıyorum

30%

C++17'ye

29%

C++20'ye

47%

Hayır, başka C++ standardına geçiş yapmayı planlamıyorum

53%

C++20'ye

Standartlar zaman çizelgesinde kullanıcıların dağıtıldığını unutmayın. Bu tür anketler, bize sadece en son standartlara göre değil, her yerde çalışan kodlar yazmamız gerektiğini hatırlatıyor.

Guy Davidson

Mühendislik Uygulamaları Başkanı, Creative Assembly

Bu sonuç özellikle şaşırtıcı çünkü henüz C++20 eğitimi almak isteyen pek fazla şirket yok. Birçok kullanıcı C++17'ye geçtiği için hâlâ şanslı hissediyor.

Jason Turner

C++ Eğitmeni, Konuşmacı, Yazar, YouTuber

Mevcut projenizde gelecek 12 ay içinde bu C++20 özelliklerinden herhangi birini kullanmayı planlıyor musunuz?

48%

Kavramlar

43%

Modüller

32%

Coroutine'ler

3%

Diğer

29%

Hiçbiri

56%

Kavramlar

46%

Modüller

30%

Coroutine'ler

2%

Diğer

28%

Hiçbiri

53%

Kavramlar

53%

Modüller

42%

Coroutine'ler

1%

Diğer

23%

Hiçbiri

[Modules] özelliği için daha fazla geliştirme yapılması gerektiğini düşünüyorum, fakat gelecekte yanıldığımı gösterecek gelişmeleri sabırsızlıkla bekliyorum.

Guy Davidson

Mühendislik Uygulamaları Başkanı, Creative Assembly

Gelecek 12 ay içinde Modules kullanmanın daha kolay hale gelmesi için araçlarda iyileştirme görmeyi umuyorum!

Jason Turner

C++ Eğitmeni, Konuşmacı, Yazar, YouTuber

C++ ile yazılım geliştirmek için en çok hangi IDE'yi / düzenleyiciyi kullanıyorsunuz?

28%

Visual Studio

28%

Visual Studio Code

24%

CLion

5%

Vi/Vim

3%

QtCreator

2%

Xcode

1%

Android Studio

23%

Visual Studio

33%

Visual Studio Code

25%

CLion

3%

Vi/Vim

3%

QtCreator

1%

Xcode

2%

Android Studio

43%

Visual Studio

17%

Visual Studio Code

18%

CLion

3%

Vi/Vim

2%

QtCreator

2%

Xcode

1%

Emacs

JetBrains, C++ içinde kodlama yaparken karşılaşabileceğiniz genel tuzaklardan ve sorunlardan kaçınmanıza yardımcı olan çok sayıda C++ IDE'si sunuyor: platformlar arası ve yerleşik geliştirme için CLion, Visual Studio kullanıcıları için ReSharper C++ ve Unreal Engine ve C++ oyun geliştiricileri için Rider.

Hangi birim testi çerçevelerini düzenli olarak kullanıyorsunuz?

35%

Google Test

26%

C++ için birim testi yazmıyorum

17%

Birim testi yazıyorum, ancak çerçeve kullanmıyorum

12%

Catch

9%

CppUnit

7%

Boost.Test

3%

CppUTest

3%

doctest

4%

Diğer

34%

Google Test

17%

C++ için birim testi yazmıyorum

21%

Birim testi yazıyorum, ancak çerçeve kullanmıyorum

14%

Catch

14%

CppUnit

7%

Boost.Test

5%

CppUTest

3%

doctest

4%

Diğer

21%

Google Test

27%

C++ için birim testi yazmıyorum

21%

Birim testi yazıyorum, ancak çerçeve kullanmıyorum

17%

Catch

11%

CppUnit

7%

Boost.Test

3%

CppUTest

4%

doctest

6%

Diğer

Mühendisler belirli bir kod için testlere kod yazmayı daha çok tercih eder. Test yazmak için harcanan süre, genellikle uzun süreli gerçek avantajlara daha ağır basıyor.

Guy Davidson

Mühendislik Uygulamaları Başkanı, Creative Assembly

Geliştiricilerin çeyreğinin birim testi yazmadığını ortaya koyan istatistikler beni çıldırtıyor. Bu durumu nasıl yorumlamalıyız ya da hangi çerçevelerin kullanıldığından emin değilim fakat hepimizin test yazması gerekiyor.

Titus Winters

Google'da Baş Mühendis

C++'de üçüncü taraf kitaplıklarınızı nasıl yönetiyorsunuz?

25%

Kütüphane kaynak kodu, derlememin bir parçası

24%

Talimatları kullanarak kütüphaneleri ayrıca derlerim

21%

Sistem paket yöneticisi kullanıyorum

18%

İnternetten önceden derlenmiş kütüphaneleri indiririm

14%

Yukarıdakilerden hiçbiri

8%

vcpkg

6%

Conan

6%

Nuget

1%

build2

1%

Hunter

5%

Diğer

28%

Kütüphane kaynak kodu, derlememin bir parçası

26%

Talimatları kullanarak kütüphaneleri ayrıca derlerim

24%

Sistem paket yöneticisi kullanıyorum

21%

İnternetten önceden derlenmiş kütüphaneleri indiririm

9%

Yukarıdakilerden hiçbiri

4%

vcpkg

5%

Conan

7%

Nuget

1%

build2

7%

Diğer

34%

Kütüphane kaynak kodu, derlememin bir parçası

25%

Talimatları kullanarak kütüphaneleri ayrıca derlerim

17%

Sistem paket yöneticisi kullanıyorum

27%

İnternetten önceden derlenmiş kütüphaneleri indiririm

12%

Yukarıdakilerden hiçbiri

8%

vcpkg

4%

Conan

7%

Nuget

2%

build2

5%

Diğer

Üçüncü tarafların kullanımı için C++ kodu paketlemenin günümüzdeki ilerleyişi burada görülebiliyor. Bu sorunun çözüleceğine dair pek ümidim olmasa da gerekli adımların atılmasını sabırsızlıkla bekliyorum.

Guy Davidson

Mühendislik Uygulamaları Başkanı, Creative Assembly

Bağımlılık yönetimi ve paket yönetiminin durumu beni üzüyor. Yeniden üretilebilir derlemelerin ve net bağımlılık zincirlerinin değeri çok büyük. Bu alanda "rastgele çalıştı" yaklaşımına sık rastlanıyor.

Titus Winters

Google'da Baş Mühendis

Hangi proje modellerini veya derleme sistemlerini düzenli olarak kullanıyorsunuz?

57%

CMake

33%

Makefile

33%

Visual Studio projesi

11%

Ninja

9%

Gradle

7%

Xcode projesi

6%

Özel tasarım sistem

4%

Qmake

3%

Bazel

2%

Autotools

63%

CMake

43%

Makefile

29%

Visual Studio projesi

15%

Ninja

12%

Gradle

4%

Xcode projesi

4%

Özel tasarım sistem

6%

Qmake

2%

Bazel

3%

Autotools

54%

CMake

33%

Makefile

49%

Visual Studio projesi

8%

Ninja

10%

Gradle

9%

Xcode projesi

8%

Özel tasarım sistem

3%

Qmake

3%

Bazel

3%

Autotools

C++ mühendisleri için CMake'i Stockholm sendromuna benzetiyorum. Rakiplerine kıyasla iyisiyle kötüsüyle liderliği sürdürmesi varsayılan durum haline geldi.

Guy Davidson

Mühendislik Uygulamaları Başkanı, Creative Assembly

Hangi derleyicileri düzenli olarak kullanıyorsunuz?

67%

GCC

36%

Clang

32%

MSVC

12%

Clang-cl

11%

Intel

7%

Mikro denetleyiciler için derleyici

6%

IntelLLVM

3%

Özel

2%

Diğer

CLion'da, Clang, MSVC, IAR ya da GCC temelli derleyiciler kullanabilirsiniz. Nadir ya da özel durumlarda Özel Derleyici (Custom Compiler) özelliği CLion içinde herhangi bir derleyici kullanmanıza izin verir.

Projelerinizde C++ ile birlikte başka hangi programlama dillerini kullanıyorsunuz?

44%

Python

30%

C

19%

Kabuk programlama dilleri

15%

Java

12%

SQL

11%

JavaScript

11%

C#

9%

HTML / CSS

5%

Assembly

5%

Go

AI ve ML için Python'ın programlama dili olarak yaygın kullanımı nedeniyle ortaya çıkan veriler pek de şaşırtıcı değil. Numpy ve pandas gibi kaliteli kitaplıkların olması bunun bariz bir seçim olmasına neden oluyor. Standart kitaplıkta analoglara ihtiyaç olabilir ya da paketleme sorununu çözmemiz gerekebilir.

Guy Davidson

Mühendislik Uygulamaları Başkanı, Creative Assembly

Ekibiniz ya da siz kılavuza uyumluluk veya diğer kod kalitesi / analizi için aşağıdaki araçlardan hangilerini kullanıyorsunuz?

37%

Kullandığım IDE tarafından sağlanan bir araç

24%

Clang-tidy

21%

ClangFormat

17%

Clang-analyzer / Clang Static Analyzer

10%

Cppcheck

7%

Cpplint

6%

SonarLint / SonarQube / SonarCloud

4%

Coverity

2%

PVS-Studio

2%

Parasoft C/C++test

Statik analizden kaçından kullanıcıların yalnızca %30 oranında olduğunu gördükten sonra açık kaynak kodunun gittikçe güvenli ve emniyetli hâle geleceğinden oldukça eminim.

Guy Davidson

Mühendislik Uygulamaları Başkanı, Creative Assembly

Ekibiniz veya siz kod analizini nasıl yapıyorsunuz?

48%

Gerekli derleyici kontrollerini etkinleştirerek derleme yaparken

26%

CI/CD işlem hattımıza entegre

24%

Hiçbir zaman kod analizi yapmıyoruz

20%

Dinamik analiz kullanıyoruz

17%

Geliştiricilerin makinelerinde çalıştırılan üçüncü taraf statik kod analiz araçlarıyla

1%

Diğer

C++ proje yapı sürelerini optimize etmek için hangi araç veya stratejileri kullanıyorsunuz?

42%

Üst bilgi içerikleri ve bağımlılıklarının optimizasyonu

30%

Önceden derlenmiş üst bilgiler

22%

Derlenmiş kaynak dosyaları paralel hale getirme

17%

Derleyici ön belleği

15%

Modüller

12%

Ek bağlantılar

5%

Unity derlemeleri

Bu durumda düşük oranın iyi olduğunu söyleyebiliriz. Önümüzdeki yıllarda önceden derlenmiş başlıkların, modüllerin ve unity yapılarının nasıl etkileşimde bulunacağını oldukça merak ediyorum.

Guy Davidson

Mühendislik Uygulamaları Başkanı, Creative Assembly

Zaman ayırdığınız için teşekkür ederiz!

Raporumuzu faydalı bulduğunuzu umuyoruz. Bu raporu arkadaşlarınızla ve meslektaşlarınızla paylaşın.

Herhangi bir soru ya da öneriniz varsa lütfen bizimle surveys@jetbrains.com adresinden iletişime geçin.