Tôi là một lập trình viên C ++ mới bắt đầu, nhưng tôi hiểu các khái niệm về ngôn ngữ khá tốt. Khi tôi bắt đầu tìm hiểu các thư viện C ++ bên ngoài, như SDL, OpenGL (có thể là một thứ khác nữa), tôi rất ngạc nhiên khi phát hiện ra rằng họ hoàn toàn không sử dụng các khái niệm C ++.
Ví dụ, cả SDL, hay OpenGL đều không sử dụng các lớp hoặc ngoại lệ, ưu tiên các hàm và mã lỗi. Trong OpenGL tôi đã thấy các hàm như glVertex2f, lấy 2 biến float làm đầu vào và có thể sẽ tốt hơn dưới dạng mẫu. Hơn nữa, các thư viện này đôi khi sử dụng marcos, trong khi nó có vẻ là một thỏa thuận chung rằng sử dụng macro là xấu.
Nhìn chung, chúng dường như được viết nhiều hơn theo kiểu C, hơn là theo kiểu C ++. Nhưng chúng là những ngôn ngữ hoàn toàn khác nhau, phải không?
Câu hỏi là: tại sao các thư viện hiện đại không sử dụng những lợi thế của ngôn ngữ mà chúng được viết bằng?