Uyarı: Bu, neredeyse "kullanıcının bilmediği" ifadesinin cevabına bağlı olduğu konuşmanın eleştirisi kadar bir cevap değildir.
İlk ana noktası (sözde) “sürekli değişen standart” tır. Gerçekte, verdiği tüm örnekler bir standart olmadan önce C ++ 'daki değişikliklerle ilgilidir . 1998'den beri (ilk C ++ standardı tamamlandıktan sonra) dilin değişmesi oldukça azdı - aslında, çoğu gerçek sorunun daha fazla değişiklik yapılması gerektiğini savunuyordu . Orijinal C ++ standardına uygun tüm kodların hala geçerli standartlara uyduğundan oldukça eminim. Biraz daha az kesin olsa da , hızlı bir şekilde (ve beklenmedik şekilde) bir şey değişmediği sürece, aynı şey yaklaşmakta olan C ++ standardı için de doğru olacaktır (teorik olarak kullanılan tüm kodlarexport
kırılacak, fakat neredeyse hiç yok; pratik açıdan bakıldığında bu bir sorun değil). Bu tür bir iddiada bulunabilecek başka dilleri, işletim sistemlerini (veya bilgisayarla ilgili başka herhangi bir şeyi) düşünebilirim.
Daha sonra "sürekli değişen stillere" gider. Yine, puanlarının çoğu saçmalıklara oldukça yakın. O karakterize etmeye çalışır for (int i=0; i<n;i++)
"eski ve kırık" ve for (int i(0); i!=n;++i)
"yeni hotness". Gerçek şu ki, bu tür değişikliklerin anlamlı olacağı türler int
olsa da, fark yaratmaz - ve bir şey kazanabilseniz bile, iyi veya doğru kod yazmak için nadiren gereklidir. En iyisi bile, köstebek yuvası dışında bir dağ yapıyor.
Bir sonraki iddiası, C ++ 'nın "yanlış yöne doğru optimizasyon yapmak" olduğunu - özellikle, iyi kütüphaneleri kullanmanın kolay olduğunu kabul ederken, C ++' nın iyi kütüphaneleri yazmayı neredeyse imkansız hale getirdiğini iddia ediyor. " Burada, onun en temel hatalarından biri olduğuna inanıyorum. Gerçekte, hemen hemen her dil için iyi kütüphaneler yazmak oldukça zordur. En azından, iyi bir kütüphane yazmak, bir sorunlu alanın anlaşılmasını gerektirir ki kodunuz, söz konusu alandaki (ya da bununla ilişkili) birçok olası uygulama için çalışır. C ++ 'nın gerçekte yaptığı şeylerin çoğu "çıtayı yükseltmek" dir - bir kütüphanenin ne kadar iyi olabileceğini gördükten sonra insanlar nadiren başka türlü sahip olacakları bir yazıyı yazmaya geri dönmeye isteklidirler.gerçekten iyi kodlayıcılar, "geri kalanımız" tarafından (kolayca kabul ettiği gibi) kullanılabilecek birkaç kitaplık yazmaktadır. Bu gerçekten, "bu bir hata değil, bir özellik" olduğu bir durumdur.
Her noktaya (sayfa alacak) sırayla vurmaya çalışmam ama doğrudan kapanış noktasına atlayın. Bjarne'den şunları söylüyor: "kullanılmayan sanal fonksiyon tablolarını ve RTTI verilerini ortadan kaldırmak için tüm program optimizasyonu kullanılabilir. Bu analiz özellikle dinamik bağlantı kullanmayan nispeten küçük programlar için uygundur."
Bunu , durdurulan sorunla karşılaştırarak bile, şu ana kadar "Bu gerçekten zor bir sorun" olduğunu desteklenmeyen bir iddiada bulunarak eleştiriyor . Gerçekte, bu tür bir şey değil - aslında, Zortech C ++ (hemen hemen 1980'lerde MS-DOS için ilk C ++ derleyicisi) içerdiği bağlayıcı . Muhtemelen yabancı verilerin her bir parçasının kaldırıldığından emin olmak zor, ancak oldukça adil bir iş yapmak için hala tamamen makul olduğu doğru.
Bununla birlikte, bunun ne olduğuna bakılmaksızın, en önemli nokta, bunun her durumda çoğu programcı için tamamen ilgisiz olmasıdır. Oldukça fazla kod çözenlerin bildiği gibi, hiç kütüphanesi olmayan bir montaj dili yazmıyorsanız, çalıştırılabilir dosyalarınız neredeyse kesinlikle makul miktarda "malzeme" (hem kod hem de veri) içerir. Muhtemelen hiç bilmiyorum, hiç kullanmadan bahsetmiyorum bile. Çoğu insan için, çoğu zaman, sadece önemli değil - en küçük gömülü sistemler için geliştirmediğiniz sürece, ekstra depolama tüketiminin basit bir önemi yoktur.
Sonunda, bu rantun, Linus'un aptallığından biraz daha fazla maddeye sahip olmadığı doğrudur - ama bu tam olarak hak ettiği hafif bir övgüyle lanet ediyor.
virtual
işlevler için vtable ile normal bir sınıf vermelidir , değil mi?