Những lo ngại về hiệu suất hoặc sự phình to không phải là lý do chính đáng để từ bỏ C ++. Mọi ngôn ngữ đều có những cạm bẫy tiềm tàng và sự đánh đổi - các lập trình viên giỏi tìm hiểu về những điều này và khi cần phát triển các chiến lược đối phó, các lập trình viên nghèo sẽ phạm lỗi và đổ lỗi cho ngôn ngữ.
Python được giải thích theo nhiều cách được coi là ngôn ngữ "chậm", nhưng đối với các tác vụ không tầm thường, lập trình viên Python có kỹ năng có thể dễ dàng tạo mã thực thi nhanh hơn so với nhà phát triển C thiếu kinh nghiệm.
Trong ngành công nghiệp của tôi, trò chơi video, chúng tôi viết mã hiệu suất cao trong C ++ bằng cách tránh những thứ như RTTI, ngoại lệ hoặc hàm ảo trong các vòng lặp bên trong. Đây có thể là cực kỳ hữu ích nhưng có vấn đề hiệu suất hoặc phình to mà nó muốn tránh. Nếu chúng ta tiến thêm một bước và chuyển hoàn toàn sang C, chúng ta sẽ thu được rất ít và mất đi các cấu trúc hữu ích nhất của C ++.
Lý do thực tế lớn nhất để thích C là sự hỗ trợ rộng rãi hơn C ++. Có nhiều nền tảng, đặc biệt là các nền tảng được nhúng, thậm chí không có trình biên dịch C ++.
Ngoài ra còn có vấn đề tương thích cho các nhà cung cấp. Trong khi C có ABI (Giao diện nhị phân ứng dụng) ổn định và được xác định rõ thì C ++ không có. ABI trong C ++ phức tạp hơn do những thứ như vtables và construcurs / phá hủy do đó được triển khai khác nhau với mọi nhà cung cấp và thậm chí các phiên bản của chuỗi công cụ của nhà cung cấp.
Trong thực tế, điều này có nghĩa là bạn không thể lấy một thư viện được tạo bởi một trình biên dịch và liên kết nó với mã hoặc thư viện từ một trình biên dịch khác tạo ra cơn ác mộng cho các dự án phân tán hoặc nhà cung cấp phần mềm trung gian của thư viện nhị phân.