Scott Meyers, Andrei Alexandrescu, ve Herb Sutter C++11 standardının kabul edildiği gün sohbet ediyorlar. Konuşmanın kabaca 5 dakikasından sonra uzunca bir süre D'den de konuşuyorlar:
http://channel9.msdn.com/posts/Scott-Meyers-Andrei-Alexandrescu-and-Herb-Sutter-C-and-Beyond
Çok hızlıca not aldım; alıntılar halinde sunuyorum.
Alıntı (Herb):
>D'de olup da keşke C++'ta da olsaydı denen olanaklar nelerdir?
Alıntı (Andrei):
>-
static if: Gerçekleştirmesi derleyici için çok kolay ve çok yararlı.
-
Şablon kısıtlamaları: C++11'e alınmadılar (concepts) ama çok yararlılar. Bu olanak alt düzeyde 'static if' ile aynı düzeneği kullanır ve yine çok yararlıdır.
Alıntı (Scott):
>D'nin bazı olanaklarını çok beğeniyorum:
-
İşlevlerin derleme zamanında işletilebilmeleri ve bunun normal işlev çağrılarıyla aynı olmaları
-
Belleğin normalde iş parçacığına ait olması (thread-local)
Alıntı (Andrei):
>Bunun ilginç bir hikayesi var: O sıralar çok meşguldüm: doktoramı bitiriyordum, Facebook'ta işe başlıyordum, ve D'nin iş parçacığı konularını hallediyordum. Ve evet, aynı zamanlarda çocuğumuz da doğmuştu. Bütün bunlar bana bellek konusunda yalnızca 2 ay bırakmıştı.
Perl de aynı modeli kullanmıştı ama ilgisiz nedenlerle başarısız olmuştu. Aynı mantığı kullanmayı düşündüm.
Alıntı (Scott):
>Problem çözmek yerine problemin oluşma olasılığını ortadan kaldıran insanlara bayılırım. Çok iyi fikir.
Alıntı (Herb):
>Kendi düşündüğüne takılmak yerine başka dillere bakıp onlardan yararlı olanaklar almak çok iyi bir fikir. Java, C#, C++, vs., hep ilgisiz dillerden olanaklar almışlardır.
Değişmezlik (immutability) veya iş parçacığına özel olmak (non-shared) başka dillerde de denenmişti. Ama burada ilginç olan, risk: 2 ay bile olsa kimse yararlı olanakların milyon satırlık programları nasıl etkileyeceğini bilemiyor; çünkü kimse denememiş durumda oluyor.
Kağıt üzerinde veya kafada görmek yeterli olmuyor; ama bazı insanlar bu hataya düşüyorlar.
Andrei, neydi o geçende söylediğin?
Alıntı (Andrei):
>"Tasarımın bütünüyle yararlı olduğunu (hiç sorunu bulunmadığını) söyleyen ya yalancıdır ya da aptal."
Alıntı (Sunucu):
>Peki C++'ın D'yi gerektiren eksiklikleri nelerdi?
Alıntı (Herb):
>- çöp toplayıcı
- güvenliğe yönelik olanaklar
Alıntı (Andrei):
>D, derlemeli olması açısından C++ ile aynı düzeydedir.
Türden bağımsız programlaması çok kolay.
C++, varsayılan olarak verinin paylaşılabilmesini (shared) seçmiştir. D bunun tersini seçmiştir.
C++'ın 'const'ı bazı ilkelere dikkat etmek koşuluyla (convention) hemen hemen yeterlidir ama D'de 'immutable' olduğu için kesinlikle değişmeyecek olan veriler olabiliyor.
Şurada da bu konuşma üzerine bir tartışma:
http://www.reddit.com/r/programming/comments/jt7zm/scott_meyers_andrei_alexandrescu_and_herb_sutter/
Ali
--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]