C++26'nın Reddedilmesi ve Programlama Dillerindeki Çatışma

C++26'nın Reddedilmesi ve Programlama Dillerindeki Çatışma
audio-thumbnail
C++26'nın Reddedilmesi ve Programlama Dillerindeki Çatışma
0:00
/0

C++26'nın Reddedilmesi ve Programlama Dillerindeki Çatışma

2026 yılının Ekim ayında, C++ dilinin tarihinde beklenmedik bir olay yaşandı. C++26, uzun yıllardır devam eden bir süreç sonucu, ISO Ulusal Vekilleri (NBs) tarafından reddedildi. Bu olay, sadece bir teknik karar değil, aynı zamanda dilin geliştirilmesindeki siyasi, teknik ve kurumsal çatışmaların bir göstergesidir.

Bu reddi, yalnızca bir standartın kabul edilmemesi değil, aynı zamanda dilin geliştirilmesindeki karar verme yapısının ve farklı grupların çıkarlarının nasıl etkileşime girdiğini ortaya koyuyor.


Bir Tarihi Durdurma: C++26'nın reddi

C++'ın ISO süreci, 1998 yılından bu yana oldukça sakin ve istikrarlı bir şekilde ilerlemişti. Standartlar, genellikle bir DIS (Uluslararası Standart Taslağı) süreci üzerinden, iki üçe bir oranla onaylanır. Bu oran sağlandığında, standart yayınlanır.

Ancak 23 Ekim 2026 tarihinde, DIS oylamasında C++26 kabul edilmedi. Bu olay, C++ standartlarının geliştirilmesindeki tarihi bir dönüm noktası oldu. 1998 yılından bu yana bu süreç, sıklıkla bir formalite gibi görülmüştü. Ancak bu sefer, bir kez daha, oylama sonucu beklenmedik bir şekilde reddi getirdi.

ISO kurallarına göre, bir DIS oylamasında iki üç oranla (yani %66,66 üzerinde) onay alması gerekiyordu. Ancak bu oran sağlanamadı. Ulusal Vekillerin (NBs) sunduğu yorumlara bakıldığında, reddin temel nedeni "contracts" (sözleşme) adlı bir özelliğin henüz hazır değil olduğu" iddiasıydı. Bu durum, dilin geliştirilmesindeki teknik ve kurumsal çatışmaların bir göstergesidir.


C++26'nın Tarihi ve Geliştirme Süreci

C++26, uzun yıllar süren bir geliştirme sürecinin sonucudur. Özellikle "contracts" (sözleşme) özelliği, C++ diline eklenmesi için 2019'dan bu yana gündemdeydi. Cologne'da düzenlenen 2019 toplantısında, C++20 için bu özelliğin dahil edilmesi önerilmişti. Ancak aynı toplantıda, bu özellik C++20'den çıkarıldı.

Bu kararın ardından, 2020'den itibaren bir çalışma grubu kuruldu ve "contracts" konusu çeşitli yönleriyle incelenmeye başlandı. Bu süreç, yaklaşık 2024'e kadar devam etti. Çalışma grubunun hazırladığı öneriler, Evolution Working Group (EWG) tarafından değerlendirildi ve ardından C++26'nın draft'ına dahil edildi.

C++26'nın ilk oylaması Mart 2026'da yapıldı. Bu aşamada, WG21 (C++ Standardization Komitesi) tarafından, contracts özelliğiyle birlikte büyük bir çoğunlukla onaylandı. Ancak bu onay, DIS oylamasında tam olarak desteklenemedi.


DIS Oylaması ve Reddi

DIS (Uluslararası Standart Taslağı) oylaması, bir standartın son onay aşamasıdır. Bu aşamada, tüm ISO üyesi ülkelerin ulusal vekilleri (National Bodies) oylarını verir. İki üç oranla (yani %66,66 üzeri) onaylanması gerekiyordu. Ancak bu oran sağlanamadı.

Yorumlara bakıldığında, bazı ülkeler, "contracts" özelliğinin henüz yeterli seviyede test edilmediği ve uygulama açısından risk taşıdığı gerekçesiyle reddi destekledi. Diğer yandan, bu özelliğe destek veren ülkeler, uzun yıllar süren çalışmaların ve gelişmelerin ardından bu özelliğin artık hazır olduğunu belirtti.

Bu olay, C++ dilinin geliştirilmesindeki karar verme yapısının ve farklı ülkelerin çıkarlarının birbirine nasıl çarptığını gösteriyor. Özellikle, teknik bir kararın siyasi boyutlar taşıdığı ve bu boyutların standartların yayılmasına nasıl etki ettiği ortaya çıkıyor.


Gelecek Adımlar: Ne Olacak?

C++26'nın reddedilmesiyle birlikte, ISO süreci birkaç farklı yöne doğru ilerleyebilir:

  1. Yeniden Düzenlenmiş Taslak ile Yeni bir DIS Oylaması: C++26'nın contracts özelliği çıkarılarak veya değiştirilerek yeni bir taslak hazırlanabilir. Ancak bu durum, 2027 veya 2028'e kadar standartın yayınlanmasını geciktirir.

  2. Yeniden Düzenlenmiş Taslak ile Komitene İletilmesi (CD Aşaması): Taslak, bir sonraki aşamaya, yani CD (Committee Draft) aşamasına gönderilir. Bu aşamada, komite üyeleri tarafından daha detaylı analiz edilir.

  3. Teknik Spesifikasyon (TS) olarak Yayınlanması: Contracts özelliği, bir Teknik Spesifikasyon olarak ayrı bir yayınla sunulabilir. Bu durum, standartın bir parçası olarak değil, test amaçlı bir geliştirme olarak devam etmesine olanak tanır.

  4. Proje İptali: En son seçenek, C++26 projesinin iptali olabilir. Ancak bu durum, C++23'e dönülmesi ve bir sonraki standart olan C++29'a geçilmesi anlamına gelir. Bu, daha fazla zaman ve kaynak harcanmasına neden olur.


Sonuç: Bir Dile Dair Daha Büyük Sorunlar

C++26'nın reddi, sadece bir özelliğin yok edilmesi değil, aynı zamanda dil geliştirme sürecindeki derinleşen çatışmaların bir göstergesidir. Teknoloji geliştikçe, dilin kendisi de büyüyerek karmaşıklaşmaktadır. Ancak bu büyüme süreci, farklı ülkelerin çıkarlarını, teknik uzmanların görüşlerini ve endüstriyel ihtiyaçları bir araya getirir.

Bu olay, C++ dilinin geleceğinin nasıl şekilleneceği konusunda önemli bir soru işareti bıraktı. "Contracts" özelliği ne olursa olsun, C++26'nın reddi, dilin geliştirilmesindeki karar verme yapısının ve uygulama odaklı yaklaşımın ne kadar önemli olduğu konusunda bir ders verdirdi.

Gelecek yıllarda, C++'ın nasıl evrileceği, sadece teknik kararlar değil, aynı zamanda dil geliştirme topluluğundaki siyasi ve kurumsal dinamiklerle birlikte şekillenecek.