- Lehçesi (Dialect) olmayan tek bir C++ hayalinin çoktan ortadan kalktığı görülüyor
- Reddit, o turuncu web sitesi (HN) ve resmi C++ standart komitesi toplantılarında C++'ın geleceği hakkında çok sayıda tartışma var
C++'ın mevcut durumu
- C++ Evrim Çalışma Grubu (EWG), P3466 R0'ı kabul etme konusunda uzlaştı.
- ABI'yi (uygulama ikili arayüzü) bozmadan C ve önceki C++ sürümleriyle bağlantı uyumluluğunu koruyor.
- 'viral anotasyonlar' kullanmıyor.
- ABI kırılması ve sıfır ek yük ilkesi gibi birbiriyle çelişen hedeflere bağlı kalıyor.
- ABD hükümeti C++ kullanımının bırakılmasını tavsiye ediyor.
- CISA, NSA, Beyaz Saray ve diğer kurumlar, bellek güvenli olmayan dillerin kullanımı konusunda uyarılar yayımladı.
- Büyük teknoloji şirketleri Rust'ı benimsiyor.
- Microsoft, Google, AWS ve diğerleri Rust kullanıyor.
- Google, C++/Rust birlikte çalışabilirlik araçları bile geliştiriyor
- C++ topluluğu içinde iç gerilimler var
- Herb Sutter'ın Microsoft'tan ayrıldığı ve MSVC'nin C++23 özelliklerini uygulamada yavaş kaldığı yönünde haberler var.
- Google, C++ geliştirme sürecine katılımını azaltıyor ve C++'ın kendi halef dilini geliştiriyor.
- Mevcut C++ standart komitesi sürecine duyulan güven eksikliği
- Modül özelliği hâlâ tamamlanmamış durumda
- 'Safety Profiles' garip bir durumda
C++'ın iki kültürü
- Modern ve otomasyon araçları kullanan grup
- Google gibi büyük teknoloji şirketleri bunun başlıca örnekleri
- Güncel C++ standartlarını (C++17 ve sonrası) kullanıyor, otomatikleştirilmiş derleme ve test araçlarıyla destekleniyor
- Kod kalitesini korumaya yatırım yapıyor ve kod tabanını sürekli modernize ediyor
- Legacy C++ grubu
- Eski ortamlar ve araçlar üzerinde çalışan kod tabanları
- Kaynak kod olmadan işletiliyor veya derleme sistemi eski
- Bakım maliyeti yüksek ve modernizasyonun önündeki engeller büyük
- Temel fark araçlar ve süreçler
- Modern C++ grubu, birleşik derleme sistemlerine ve statik analizör, formatter, linter gibi araçlara dayanıyor
- Legacy grup ise bu araç ve süreçlerin yokluğu nedeniyle daha düşük operasyonel verimlilikle çalışıyor
Sonuçlar ve etkiler
- Safety Profiles
- Mevcut legacy kodu değiştirmeden güvenliği artırmayı amaçlıyor
- Modern C++'ın ihtiyaçlarından çok mevcut kodun korunmasına odaklanıyor
- Modüller
- Başlık dosyalarının modül olarak kolayca içe aktarılabilmesi için tasarlandı
- Legacy kodla uyumluluk gözetilerek tasarlandı
- C++ topluluğundaki bölünme
- Modern ve legacy gruplar arasındaki gereksinim uyumsuzluğu, topluluk içindeki çatışmayı derinleştiriyor
- C++ standart komitesinin muhafazakâr yaklaşımı, bu çatışmaları yumuşatma girişimi gibi görünüyor
Alternatif bakış açısı
- Safe C++ gibi alternatif fikirler topluluk içinde hoş karşılanmıyor
- Standart komitesinin bazı üyelerinin kişisel estetik ölçütlerinde ısrar ederek değişime direndiğine yönelik eleştiriler var
3 yorum
Rust için GUI geliştirme ekosistemi henüz olmadığı için benimseyemiyorum ama
Rust kullanan düzgün bir GUI framework'ünün çıkması gerek...
Rust'ın C++'ın yerini alıp alamayacağından pek emin değilim ama
yeni C++ projelerinin neredeyse hiç görünmediği de bir gerçek...
Görünüşe göre C++ komitesi, dönüşmektense öz değerlerini daha çok önemseyen bir yönün doğru olduğuna karar vermiş.
Hacker News görüşü
Google’ın C++ kodu çoğu zaman en güncel sürümlerde çalışmıyor ve geliştiriciler bunu düzeltmeye istekli olmuyor. Bunun nedeni, Google kodunun eski ile modern arasında bir ara noktada kalmış olması
C++ standart çalışanlarına, C++’ın mevcut yönünü desteklemelerini ve C++’ın geleceği hakkında internette çıkan gürültüyü görmezden gelmelerini tavsiye ediyor
C++ kullanan tek grubun, yeniden düzenlenemeyecek kadar büyük legacy kod tabanına sahip olanlar olacağını iddia ediyor
Rust’ın edition sisteminin çok iyi çalıştığını değerlendiriyor
Herb Sutter’ın Microsoft’tan ayrılmasının Microsoft için kötü etkileri olacağından endişe ediyor
std::span’ın sınır kontrolü hariç benimsenmesini anıyor ve Herb’ün çabasının gerekli olduğunu savunuyorOtomatik testlerin iki tarafı ayıran başlıca unsur olduğunu vurguluyor
C++’ın cazibesini azaltan başlıca etkenin modül eksikliği olduğunu iddia ediyor
Herb Sutter’ın uzlaşma sağlamada becerikli olduğunu, buna karşılık Google’ın kendi gündemini dayattığını karşılaştırıyor
Büyük kod tabanlarına sahip müşterilerin, katı kuralları karşılamak için kodlarının %1’ini bile değiştirmek istemediğini belirtiyor
Python ve Javascript/Node/Typescript içinde de birden fazla klik bulunduğunu açıklıyor