Gördüğüm her şeyden, pratik ve tarihi sebeplerin bir birleşimi. (Çoğunlukla) tarihsel sebep, CPython 1.0’ın 1989’da piyasaya sürülmesidir. O zamanlar, C henüz yeni standartlaştırılmıştı. C ++ neredeyse bilinmiyordu ve kesinlikle taşınabilir değildi, çünkü neredeyse hiç kimse C ++ derleyicisine sahip değildi.
Her ne kadar C ++ bugün çok daha yaygın ve kolay erişilebilir olsa da, CPython'u C ++ ile uyumlu olan C altkümesine yeniden yazmak oldukça adil bir çalışma gerektirecektir. Tek başına, bu çalışma gerçek bir fayda sağlayacak veya çok az sağlayacaktır.
Biraz gibi Joel'in blog post üzerinde başlayan ve bir yazılım şirketi yapabileceğiniz en büyük hata olma komple yeniden yazma yapmayı. Microsoft'un Windows 3.0 çekirdeğinden Windows NT çekirdeğine dönüşümünü ve Apple'ın MacOS 9'dan Mac OS / X'e dönüşümünü işaret ederek karşı koyardım. İkisi de şirketi öldürmedi - ama ikisi de kesinlikle büyük, pahalı, uzun vadeli projelerdi. Her ikisi de, başarısı için çok önemli olan bir şeye işaret eder: Her iki kod tabanını da (çoğu) kullanıcıların (en azından algılanan) yararlarına dayanarak boş zamanlarında yeni kod tabanına geçebilecekleri kadar uzun süre tutmak .
Bir geliştirme ekibi için Python'un büyüklüğü bu tür bir değişimin çok daha zor. Python 2'den 3'e değişim bile oldukça fazla çalışma gerektirdi ve benzer bir örtüşme gerektirdi. Ancak en azından bu durumda, C ++ 'a yeniden yazmanın (en azından hemen) sağlayamayacağı değişikliklerin doğrudan faydaları var.
Linus Torvalds'ın C ++ 'a karşı rantı gündeme geldi, ben de bunu söyleyeceğim. Guido'dan gördüğüm hiçbir şey, C ++ 'a karşı böyle güçlü, olumsuz duygulara sahip olduğunu göstermez. Ona söylediklerimin en kötüsü hakkında C ++ öğretmenin genellikle bir felaket olduğu - ama bunun öğretmenlerin C ++ bilmediği / bilmediği için derhal devam ettiğini söyledi.
Ayrıca C ++ 'ı C ++' a göreceli olarak kolaylıkla dönüştürmenin mümkün olduğunu düşünürken , C ++ 'dan gerçek anlamda bir avantaj elde etmenin sadece bundan biraz daha fazla yeniden yazmayı gerektirdiğini değil, aynı zamanda katılan çoğu geliştiricinin de yeniden eğitilmesini gerektirdiğini düşünüyorum. En iyi yazılmış C ++, aynı şeyleri yapmak için iyi yazılmış C'den büyük ölçüde farklıdır. O var değil değişen meselesi malloc
için new
ve printf
hiç cout
hayal herhangi bir streç tarafından.