Dari semua yang saya lihat, ini adalah kombinasi dari alasan praktis dan historis. Alasan (sebagian besar) historis adalah bahwa CPython 1.0 dirilis pada tahun 1989. Pada saat itu, C baru-baru ini distandarisasi. C ++ hampir tidak dikenal dan jelas non-portable, karena hampir tidak ada yang memiliki kompiler C ++.
Meskipun C ++ jauh lebih luas dan mudah tersedia saat ini, masih diperlukan banyak pekerjaan untuk menulis ulang CPython ke dalam subset C yang kompatibel dengan C ++. Dengan sendirinya, pekerjaan itu akan memberikan sedikit atau tidak ada manfaat nyata.
Agak mirip dengan posting blog Joel tentang memulai kembali dan melakukan penulisan ulang lengkap sebagai kesalahan terburuk yang bisa dilakukan oleh perusahaan perangkat lunak. Saya akan mengatasinya dengan menunjuk konversi Microsoft dari inti Windows 3.0 ke inti Windows NT, dan konversi Apple dari MacOS 9 ke Mac OS / X. Tidak ada yang membunuh perusahaan - tetapi keduanya pasti proyek besar, mahal, jangka panjang. Keduanya juga menunjuk pada sesuatu yang penting untuk kesuksesan: mempertahankan kedua basis kode cukup lama sehingga (sebagian besar) pengguna dapat beralih ke basis kode baru di waktu luang mereka, berdasarkan pada manfaat (setidaknya dirasakan).
Namun, untuk tim pengembangan sebesar Python, perubahan semacam itu jauh lebih sulit. Bahkan perubahan dari Python 2 ke 3 telah mengambil cukup banyak pekerjaan, dan membutuhkan tumpang tindih yang serupa. Setidaknya dalam kasus itu, bagaimanapun, ada manfaat langsung untuk perubahan, yang menulis ulang ke dalam C ++ (dengan sendirinya) tidak akan (setidaknya segera) menyediakan.
Kata-kata kasar Linus Torvalds terhadap C ++ diangkat, jadi saya akan menyebutkan itu juga. Tidak ada yang saya lihat dari Guido yang menunjukkan bahwa ia memiliki perasaan negatif dan kuat terhadap C ++. Tentang yang terburuk yang pernah saya lihat dia katakan adalah bahwa mengajar C ++ sering merupakan bencana - tetapi dia langsung mengatakan bahwa ini sebagian besar karena para guru tidak / tidak tahu C ++.
Saya juga berpikir bahwa walaupun mungkin untuk mengubah banyak kode C ke C ++ dengan relatif mudah, bahwa mendapatkan banyak keuntungan nyata dari C ++ tidak hanya membutuhkan penulisan ulang yang lebih dari itu, tetapi juga membutuhkan pendidikan ulang yang substansial dari sebagian besar pengembang yang terlibat. Kebanyakan C ++ yang ditulis dengan baik sangat berbeda dari C yang ditulis dengan baik untuk melakukan hal yang sama. Ini bukan hanya masalah perubahan malloc
ke new
dan printf
ke cout
, oleh imajinasi.