C++

Paylaş:

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

Paylaş:

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

8%

C++98 / C++03

27%

C++11

21%

C++14

43%

С++17

29%

C++20

10%

С++23

13%

Emin değilim

6%

C++98 / C++03

28%

C++11

27%

C++14

48%

С++17

37%

C++20

14%

С++23

13%

Emin değilim

5%

C++98 / C++03

25%

C++11

15%

C++14

48%

С++17

39%

C++20

16%

С++23

10%

Emin değilim

Diego Rodriguez-Losada Gonzalez

Baş Mimar, JFrog

C++23 ve daha önceki standartların benimsenme düzeyleri şaşırtıcı değil: Benimsenme paternleri kısa zaman aralığı içinde önceki yıllarla neredeyse aynı. C++23, 2023'te %10 benimsenme gösterdi ve bu oran 2020'deki C++20 benimsenme oranından (%12) biraz daha düşük. Bunun, C++23 ile kıyaslandığında C++20'nin sunduğu yeni özelliklerin sayısıyla ilgisi olabilir.

Inbal Levi

MPGC Services Ltd (Millennium) Baş Yazılım Mühendisi, WG21 komite üyesi

Yerleşik Yazılım ve Oyun sektörlerinde önemli bir oranda C++20 ile çalışıldığını görmek harika. Bu sürüm, çalışma zamanı performansını büyük ölçüde ön plana çıkararak bu sektörler için oldukça faydalı olacak şekilde derleme süresi becerilerini genişletiyor. Gelecek yıllarda C++23 için de benzer benimsenme oranlarını görmeyi umuyorum.

Bryce Adelstein Lelbach

NVIDIA Baş Mimarı

Uygulamalar daha gelişmiş hâle geldiği ve özellikler tamamlanmış olduğu için C++20'nin benimsenmesinde anlamlı yüksek bir sıçrayış yaşandı. Gelecek birkaç yılda topluluğun çoğunluğunda "temel" diyalekt olarak C++17'den C++20'ye büyük bir geçiş gözlemleyeceğimizi düşünüyorum.

C++ standartlarına geçiş

57%

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

12%

C++11

2%

C++14

16%

С++17

9%

C++20

5%

С++23

50%

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

1%

C++98 / C++03

4%

C++14

21%

С++17

13%

C++20

10%

С++23

42%

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

2%

C++98 / C++03

5%

C++11

25%

С++17

19%

C++20

7%

С++23

45%

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

1%

C++11

1%

C++14

31%

C++20

22%

С++23

Diego Rodriguez-Losada Gonzalez

Baş Mimar, JFrog

C++98/03 kullananların %57'si farklı bir stardarda geçmeyi planlamıyor mu? Bu, hayal kırıklığı yaratabilir, ancak genel olarak katılımcıların yalnızca %8'inin hâlâ C++98/03'ü kullandığı göz önüne alındığında, bu, dünyadaki C++ kodunun yalnızca yaklaşık %4'ünün bu eski standartta kaldığı anlamına gelir ki bu da fena sayılmaz ve diğer programlama dillerine benzerdir.

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

48%
53%

Kavramlar

43%
49%

Modüller

32%
29%

Coroutine'ler

3%
3%

Diğer

29%
21%

Hiç

Diego Rodriguez-Losada Gonzalez

Baş Mimar, JFrog

Yapı sistemlerinde ve ekosistemde C++20 modüllerini desteklemek için yakın zamanda çok sayıda geliştirme yapılırken gelecek yıl C++20 modülleri kullanmayı planlayan (üretimde kullanacaklarını tahmin ediyorum) katılımcıların yarısı bunun fazla iyimser olduğunu düşünüyorum. Gelecek 12 ay içerisinde bu seviyeye erişebileceğimize inanmıyorum.

Inbal Levi

MPGC Services Ltd (Millennium) Baş Yazılım Mühendisi, WG21 komite üyesi

Geleneksel olarak yenilikleri yavaş bir şekilde benimsemekle bilinen Yerleşik Yazılım dünyasında özelliklerin hızlı benimsendiğini görmekten çok mutluyum. Ayrıca bunun C++20'nin yerleşik alan için sunduğu harika avantajlarla da ilgili olduğuna inanıyorum.

Bryce Adelstein Lelbach

NVIDIA Baş Mimarı

Gerçekte kaç kişinin modülleri kullanmayı denediğini merak ediyorum. Çok fazla ilgi olsa da modüller pek benimsenmedi.

C++ geliştirmesi için en çok hangi IDE'yi veya düzenleyiciyi kullanıyorsunuz?

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%

Diğer

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%

Diğer

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%

Diğer

Diego Rodriguez-Losada Gonzalez

Baş Mimar, JFrog

Piyasaya açık bir şekilde Microsoft ve JetBrains hâkim. VS Code'un hızlı yükselişi, sonunda (en azından C++ kullanıcıları arasında) yavaşlıyor gibi görünüyor ve üç büyük oyuncu olan CLion, VS ve VS Code için eşit kullanım oranlarıyla istikrarlı hâle gelmeye başladı.

Eğer kullanıyorsanız düzenli olarak hangi birim testi altyapılarını kullanıyorsunuz?

26%

29%

C++ için birim testi yazmıyorum

17%

16%

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

35%

33%

GoogleTest

12%

12%

Catch

9%

9%

CppUnit

Diego Rodriguez-Losada Gonzalez

Baş Mimar, JFrog

%29'luk bir kesimin C++ kodları için hâlâ birim testi yazmaması üzücü bir durum. Bu oran yıllar içinde yavaşça düşse de yeterince hızlı düşmüyor. Dilin geleceği, bu gibi sorunların çözülmesine de bağlı.

Inbal Levi

MPGC Services Ltd (Millennium) Baş Yazılım Mühendisi, WG21 komite üyesi

Çerçevesiz birim testi yazan geliştiricilerin sayısını görmek şaşırtıcı. Toplulukta paket yöneticiler konusunu tanıtmaya yönelik bir çaba var ve bu çabanın, hem birim testi yazmayanlar hem de yazarken çerçeve kullanmayanlar için gelecek yıllarda bu sayının düşmesini sağlamasını umut ediyorum.

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

25%

24%

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

21%

21%

Sistem paket yöneticisi kullanıyorum

24%

19%

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

18%

18%

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

14%

15%

Herhangi bir bağımlılık kullanmıyorum

Diego Rodriguez-Losada Gonzalez

Baş Mimar, JFrog

Gittikçe daha az geliştiricinin talimatları kullanarak manuel bir şekilde kitaplık derlediğini görmek güzel bir gelişme. Otomatik hâle getirilmiş çözümler kullanmanın, C ve C++ ekosistemlerine özel bu uygulamayı daha da azaltacağına dair umut vadediyor.

Inbal Levi

MPGC Services Ltd (Millennium) Baş Yazılım Mühendisi, WG21 komite üyesi

Bunun, C++ topluluğu genelinde paket yöneticilerinin geniş çaplı desteğinin gerekli olduğunun harika bir göstergesi olduğunu düşünüyorum.

Bryce Adelstein Lelbach

NVIDIA Baş Mimarı

Önünde sonunda, bu paket yöneticilerinin (vcpkg, Conan vb.) yeterince gelişmiş olduğu ve varsayılan standart olarak yaygın bir şekilde kullanılmaya başladığı bir dönüm noktasına erişebiliriz. Ancak henüz o aşamada değiliz.

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

57%

54%

CMake

33%

29%

Visual Studio projesi

33%

28%

Makefile

11%

15%

Ninja

9%

6%

Gradle

Bryce Adelstein Lelbach

NVIDIA Baş Mimarı

CMake'in pazar payında düşüş, Ninja'nın pazar payında ise yükseliş görmek oldukça ilgi çekici. Bu, farkında olduğum bir trend değildi. Belki yalnızca geçici bir heyecan olabilir, ancak CMake'in şu ana kadarki hızlı yükselişi, ulaşabileceği en yüksek seviyeye ulaştığını gösteriyor olabilir.

Hangi derleyicileri düzenli olarak kullanıyorsunuz?

65%

GCC

36%

Clang

31%

MSVC

13%

Clang-cl

11%

Intel

9%

Intel LLVM

7%

Mikro denetleyiciler için derleyici

3%

Özel

2%

Diğer

Projelerinizde C++'ın yanı sıra başka hangi programlama dillerini kullanıyorsunuz?

45%

Python

29%

C

16%

Kabuk komut dosyası yazma dilleri

14%

JavaScript

13%

Java

12%

SQL

10%

HTML / CSS

10%

C#

5%

Rust

5%

Assembly

4%

Go

4%

Lua

3%

TypeScript

3%

MATLAB

2%

Kotlin

2%

PHP

2%

Visual Basic

2%

Perl

1%

Objective-C

Diego Rodriguez-Losada Gonzalez

Baş Mimar, JFrog

Python, C++ geliştiricilerinin alet çantası için bir başka oldukça kullanışlı araç.

Bryce Adelstein Lelbach

NVIDIA Baş Mimarı

C++ ile birlikte JavaScript ve Rust'ın daha sık kullanılması burada trend olarak görülüyor. Rust'ın artan popülerliği göz önünde bulundurulduğunda Rust ve C++ için daha hızlı büyüme olmaması şaşırtıcı. Bu, yeni projelerin aksine mevcut projelerde Rust kullanmanın daha zor olabileceğini işaret ediyor.

Siz ya da ekibiniz kılavuza uyum veya diğer bir tür kod kalitesi/incelemesi için aşağıdaki araçlardan hangisini/hangilerini kullanıyorsunuz?

37%

31%

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

24%

27%

Clang-tidy

21%

24%

ClangFormat

17%

18%

Clang-analyzer / Clang Static Analyzer

10%

11%

Cppcheck

Bryce Adelstein Lelbach

NVIDIA Baş Mimarı

Burada IDE'nin sağladığı analiz araçlarının kullanımındaki düşüşün, GitHub Eylemleri'nde Clang-tidy/ClangFormat/Clang statik analiz aracı yürütürken olduğu gibi statik analizleri CI'larına entegre eden kullanıcıların göstergesi olduğunu düşünüyorum.

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

50%

Gerekli derleyici kontrollerini etkinleştirerek derleme yaparken

27%

CI/CD ardışık düzenimize entegre

23%

Hiçbir zaman kod analizi yapmıyoruz

19%

Dinamik analiz kullanıyoruz

18%

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?

39%

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

28%

Önceden derlenmiş üst bilgiler

23%

Derlenmiş kaynak dosyaları paralel hâle getirme

19%

Derleyici ön belleği

14%

Modüller

12%

Ek bağlantılar

6%

Unity derlemeleri

4%

Incredibuild

1%

Electric Cloud

1%

Diğer

32%

Hiç

46%

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

26%

Önceden derlenmiş üst bilgiler

29%

Derlenmiş kaynak dosyaları paralel hâle getirme

22%

Derleyici ön belleği

17%

Modüller

14%

Ek bağlantılar

6%

Unity derlemeleri

2%

Incredibuild

1%

Electric Cloud

1%

Diğer

29%

Hiç

46%

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

35%

Önceden derlenmiş üst bilgiler

25%

Derlenmiş kaynak dosyaları paralel hâle getirme

24%

Derleyici ön belleği

16%

Modüller

16%

Ek bağlantılar

11%

Unity derlemeleri

7%

Incredibuild

1%

Electric Cloud

2%

Diğer

28%

Hiç

Diego Rodriguez-Losada Gonzalez

Baş Mimar, JFrog

Beş ila 10 yıl önce C++ IDE piyasasına Windows'a özel olan Visual Studio tek ürün olarak hakimdi. İnsanlar yalnızca iyi bir IDE'ye erişim için Windows'ta geliştirmeye alışıktı. Bugün ise bu alanda kullanıcılar için harika olan JetBrains ve Microsoft gibi başlıca iki tedarikçi var. Visual Studio Code ve CLion sayesinde IDE'ler, Windows olmayan cihazlarda geliştirme yapanlar için daha erişilebilir.

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.