Ketakutan akan kinerja atau mengasapi bukan alasan yang baik untuk melupakan C ++. Setiap bahasa memiliki potensi jebakan dan pertukaran - pemrogram yang baik belajar tentang ini dan jika perlu mengembangkan strategi koping, pemrogram yang buruk akan jatuh busuk dan menyalahkan bahasa.
Python yang ditafsirkan dalam banyak hal dianggap sebagai bahasa "lambat", tetapi untuk tugas-tugas non-sepele seorang programmer Python yang terampil dapat dengan mudah menghasilkan kode yang mengeksekusi lebih cepat daripada yang dilakukan oleh pengembang C yang tidak berpengalaman.
Di industri saya, video game, kami menulis kode kinerja tinggi dalam C ++ dengan menghindari hal-hal seperti RTTI, pengecualian, atau fungsi virtual di loop batin. Ini bisa sangat berguna tetapi memiliki masalah kinerja atau mengasapi yang diinginkan untuk dihindari. Jika kita melangkah lebih jauh dan beralih sepenuhnya ke C kita akan mendapatkan sedikit dan kehilangan konstruksi yang paling berguna dari C ++.
Alasan praktis terbesar untuk memilih C adalah bahwa dukungan lebih luas daripada C ++. Ada banyak platform, terutama yang tertanam, yang bahkan tidak memiliki kompiler C ++.
Ada juga masalah kompatibilitas untuk vendor. Sementara C memiliki ABI yang stabil dan didefinisikan dengan baik (Application Binary Interface) C ++ tidak. ABI dalam C ++ lebih rumit karena hal-hal seperti vtables dan konstruk / destruktor sehingga diimplementasikan secara berbeda dengan setiap vendor, dan bahkan versi dari vendor toolchain.
Dalam istilah nyata ini berarti Anda tidak dapat mengambil perpustakaan yang dihasilkan oleh satu kompiler dan menautkannya dengan kode atau perpustakaan dari yang lain yang menciptakan mimpi buruk untuk proyek-proyek yang didistribusikan atau penyedia middleware dari perpustakaan biner.