C ++ là một phép lai không phải vì nó cho phép một người viết mã kiểu C, mà bởi vì nó hỗ trợ một số mô hình lập trình, chẳng hạn như thủ tục, hướng đối tượng và chung chung. C ++ không ép buộc bạn vào một cách làm việc, và đó là điểm mạnh của nó, bởi vì các vấn đề khác nhau có thể được giải quyết dễ dàng hơn bằng cách sử dụng các mô hình khác nhau.
IMHO, sẽ tốt hơn nếu ngôn ngữ / trình biên dịch buộc một số lập trình viên phải viết mã thanh lịch hơn.
Sau đó, trước tiên bạn phải xác định những gì có nghĩa là thanh lịch . Sau đó, bạn sẽ phải xem liệu định nghĩa thanh lịch của bạn có phù hợp với tất cả các miền và nền tảng vấn đề mà C ++ được sử dụng không. Một phong cách mã hóa thanh lịch để viết một trình xử lý văn bản cho Windows có thể hoàn toàn không phù hợp để viết một hệ thống nhúng.
Xem xét việc viết mã C ++ để chạy trên DSP. Đầu tiên, trình biên dịch C ++ cho DSP đó có thể đơn giản là không hỗ trợ một số tính năng C ++ nhất định, như các luồng. Thứ hai, bạn bị hạn chế nghiêm trọng bởi tốc độ CPU và có thể cả bộ nhớ, vì vậy một số tính năng C ++ có thể chỉ đơn giản là giết chết hiệu suất của bạn. Ví dụ, bạn có thể phải tránh các chức năng ảo vì lợi ích của tốc độ. Những cân nhắc như vậy sẽ thay đổi hoàn toàn phong cách lập trình của bạn, so với những gì bạn sẽ sử dụng trên PC và C ++ cho phép điều đó.
Tóm lại, C ++ là một ngôn ngữ khổng lồ và phức tạp với nhiều tính năng. Có nhiều lý do tại sao bất kỳ tập hợp con của các tính năng này có thể không áp dụng được cho một dự án cụ thể: tốc độ, tính di động, hỗ trợ trình biên dịch hoặc thậm chí là kinh nghiệm lập trình và sự quen thuộc. Vì lý do đó, ngôn ngữ buộc nhà phát triển sử dụng một số tính năng nhất định so với các ngôn ngữ khác cho bất kỳ tác vụ nhất định nào là một ý tưởng tồi. Hãy nghĩ về Java, nơi ngôn ngữ bắt buộc mọi hàm phải là một phương thức của một lớp. Có rất nhiều trường hợp khi tạo một lớp chỉ để bọc một phương thức là khó xử và không cần thiết, nhưng bạn phải làm điều đó bởi vì ngôn ngữ buộc bạn phải làm.