C++ programlama dili nedir, ne için kullanılır? C++ nasıl bir tasarım felsefesine sahiptir? C++ nesne yönelimli bir programlama dili midir? C++ öğrenmeye nereden başlamak gerekir? Bu yazıda yukarıda geçen sorulara yanıt verilmesi amaçlandı.
Giriş
Tanım
C++ genel kullanım amaçlı bir programlama dilidir. Danimarkalı bilgisayar bilimcisi Bjarne Stroustrup tarafından C programlama dilinin uzantısı olarak geliştirilmiştir. Dil zamanla önemli ölçüde genişledi ve modern C++ artık düşük seviyeli bellek işleme olanaklarına ek olarak nesne yönelimli, genel ve işlevsel özelliklere sahip olmayı başardı.
C++ programlama dili neredeyse her zaman derlenmiş bir dil olarak uygulanır ve birçok satıcı, Free Software Foundation, LLVM, Microsoft, Intel, Oracle ve IBM dahil olmak üzere C++ derleyicileri sağlar, bu nedenle birçok platformda kullanılabilir.
Standardizasyon
C++, Uluslararası Standardizasyon Örgütü (ISO) tarafından standartlaştırılmıştır ve en son standart sürüm ISO tarafından Aralık 2020’de ISO/IEC 14882:2020 (gayri resmi olarak C++20 olarak bilinir) olarak onaylanmış ve yayınlanmıştır.
Tarihçe
1979’da Danimarkalı bir bilgisayar bilimcisi olan Bjarne Stroustrup, C++’ın atası olan “C with Classes” üzerinde çalışmaya başladı. Yeni bir dil yaratma motivasyonu, Stroustrup’un doktora tezi için programlama deneyiminden kaynaklandı.
Stroustrup, Simula’nın büyük yazılım geliştirme için çok yararlı özelliklere sahip olduğunu, ancak dilin pratik kullanım için çok yavaş olduğunu, BCPL’nin ise hızlı ancak büyük yazılım geliştirme için uygun olamayacak kadar düşük olduğunu savundu. Stroustrup, AT&T Bell Laboratuarlarında çalışmaya başladığında, dağıtık bilgi işlem açısından UNIX çekirdeğini analiz etme sorunu yaşadı.
Doktora deneyimini hatırlayan Stroustrup, Simula benzeri özelliklerle C dilini geliştirmek için yola çıktı. C dili genel amaçlı, hızlı, taşınabilir ve yaygın olarak kullanıldığı için seçildi. C ve Simula’nın etkilerinin yanı sıra, ALGOL 68, Ada, CLU ve ML dahil olmak üzere diğer diller de bu yeni dili etkiledi.
Kullanımı
C++, sistem programlamaya ve gömülü kaynakları kısıtlı yazılımlara ve büyük sistemlere entegre etmeye yönelik olarak tasarlanmıştır ve tasarımında öne çıkan özellikler performans, verimlilik ve kullanım esnekliğidir. C++ aynı zamanda, yazılım altyapısı ve masaüstü uygulamaları, video oyunları, sunucular (örn. kritik uygulamalar (örneğin telefon anahtarları veya uzay sondaları) gibi alanlarda kullanılır.
Bir programlama dili öğrenmeye başlamadan önce onun yetenekleri hakkında bilgi sahibi olmalı ve ne için kullanıldığına bakmalısınız. C++, güçlü bir genel amaçlı programlama dilidir. İşletim sistemleri, tarayıcılar, oyunlar vb. geliştirmek için kullanılabilir.[1] C++, prosedürel, nesne yönelimli, işlevsel vb. gibi farklı programlama yollarını destekler. Bu, C++’ı esnek olduğu kadar güçlü kılar.
C++, oyun geliştirmede en yaygın kullanılan programlama dillerinden biridir. Örneğin C++ şu oyunları geliştirmek için kullanılmıştır: World of Warcraft, Counter-Strike ve StarCraft gibi oyunlar, Unreal Engine gibi oyun motorları ve Xbox, PlayStation ve Nintendo Switch dahil olmak üzere oyun konsolları.[2]
Tasarım felsefesi
C++ programlama dili var olduğu günden bu yana bir dizi ilke tarafından yönlendirilmiştir: Bunlar aşağıda şu şekilde sıralanabilir:
- Gerçek problemler tarafından yönlendirilmeli ve özellikleri gerçek dünya programlarında hemen kullanışlı olmalıdır.
- Her özellik uygulanabilir olmalıdır (bunu yapmanın oldukça açık bir yolu ile).
- Programcılar kendi programlama stillerini seçmekte özgür olmalı ve bu stil C++ tarafından tam olarak desteklenmelidir.
- Programları ayrı, iyi tanımlanmış bölümler halinde organize etmek için olanaklar sağlanmalı ve ayrı ayrı geliştirilmiş bölümleri birleştirmek için olanaklar sağlamalıdır.
- Tip sisteminde örtülü ihlal yok (ancak açık ihlallere izin verilir; yani programcı tarafından açıkça talep edilenler).
- Kullanıcı tarafından oluşturulan türlerin, yerleşik türlerle aynı desteğe ve performansa sahip olması gerekir.
- Kullanılmayan özellikler, oluşturulan yürütülebilir dosyaları olumsuz etkilememelidir (ör. daha düşük performansta).
- C++ altında bir dil olmamalıdır (birleştirme dili hariç).
- Programcının amacı bilinmiyorsa, manuel kontrol sağlayarak programcının bunu belirlemesine izin verilmelidir.
Nereden başlamak gerekir?
C++ için W3Schools, Codeacademy ve freeCodeCamp gibi eğitim hizmetleri üzerinden ilk eğitimler başlatılabilir. Ancak bu tür eğitim hizmetlerinden istifade etmek için öncelikle temel düzeyde bir İngilizce bilmeniz gerekir. Eğer Türkçe dersler almak isterseniz Youtube’da Yazılım Bilimi kanalını ziyaret edebilirsiniz.
Dipnotlar
[1] “Learn C++ Programming – Programiz.” https://www.programiz.com/cpp–programming. Erişim tarihi: 10 Ağu. 2022.
[2] “What is C++ used for? – Codecademy.” 10 May. 2021, https://www.codecademy.com/resources/blog/what–is–c–plus–plus–used–for/. Erişim tarihi: 10 Ağu. 2022.

