-
Niềm vui của C++
- Tôi nghĩ rằng các lập trình viên đã quên lý do khiến mình bắt đầu lập trình.
- Khi làm việc với các dự án C++, tôi cảm thấy thú vị và có thể biến nhiều ý tưởng khác nhau thành hiện thực.
- C++ không cản trở lập trình viên làm những gì họ muốn.
-
Vấn đề của lập trình siêu dữ liệu C++
- Từ cuối thập niên 1990 đến đầu những năm 2000, cộng đồng C++ say mê với lập trình siêu dữ liệu bằng template.
- Điều này đã làm cho C++ trở thành ngôn ngữ phức tạp và khó sử dụng.
- Java đã mang lại trải nghiệm người dùng tốt hơn khi tính đến nhu cầu của lập trình viên.
-
Thay đổi đáng chú ý của C++11
- C++11 đã mang lại rất nhiều cải tiến cho ngôn ngữ.
- Các tính năng mới như
auto, nullptr, range-for, biểu thức lambda, <chrono>, <regex>, unique_ptr, shared_ptr, <thread> đã được bổ sung.
- Những thay đổi này làm cho C++ trở nên hiện đại và dễ sử dụng hơn.
-
Tính năng hiện đại của C++
- Nó hỗ trợ nhiều tính năng như duyệt hệ thống tập tin, quản lý gói, thư viện ma trận, đồ họa, GUI, TUI, và nhiều hơn nữa.
- Nhờ C++ có thể truy cập trực tiếp vào nhiều thư viện và API, bạn gần như có thể tạo ra mọi thứ.
-
Tự do sáng tạo của C++
- C++ là ngôn ngữ cho phép thể hiện sự sáng tạo, thoát khỏi các ràng buộc mang tính áp đặt của ngôn ngữ khác.
- cppreference.com là một trang tài liệu C++ rất tuyệt vời, giải thích rất rõ các từ khóa và thư viện.
-
Nhược điểm của C++
- Thông báo lỗi của trình biên dịch thuộc loại tệ nhất trong ngành, và các công cụ build rất khó sử dụng.
- Đường cong học tập khá dốc do độ phức tạp của ngôn ngữ và di sản lịch sử.
- Mẫu RAII (Resource Acquisition Is Initialization) có thể gây bất tiện trong môi trường thực tế.
-
Kết luận
- C++ vẫn là ngôn ngữ thú vị và mạnh mẽ, và cần phải thoát khỏi các định kiến cũ.
- C++ trao cho lập trình viên quyền tự do sáng tạo, mở ra khả năng hiện thực hóa nhiều dự án khác nhau.
1 bình luận
Ý kiến trên Hacker News
Tôi không thích C++, nhưng trong các dự án cá nhân thì có trải nghiệm khá tốt. Rust và CI/CD mang lại độ tin cậy lâu dài. Hệ thống build và quản lý gói khá khó.
Có rất nhiều ý kiến trái chiều về C++. Chất lượng hiện đại của C++ cùng với các vấn đề lỗi thời của nó tồn tại song song.
Việc kết nối các dependency bên thứ ba vào dự án C++ khá khó khăn. Với hầu hết các ngôn ngữ hiện đại, việc này thường giải quyết được chỉ bằng thao tác cài đặt đơn giản.
Tôi đang học các tính năng mới của C++ nhưng gặp khó khăn vì lỗi biên dịch. Tôi dừng lại ở C++14.
Các phàn nàn về C++ phần lớn phát sinh từ các codebase cũ. Tôi cũng có trải nghiệm tương tự với Rust.
Có người thấy thú vị khi dùng C++, nhưng cá nhân tôi cho rằng C++ rất phức tạp.
Tôi rất ấn tượng với C++11, và tài liệu trên cppreference.com thật xuất sắc.
Nếu có đội ngũ am hiểu C++ hiện đại, thì C++ thật tuyệt. Nó có hiệu năng rất tốt và dễ debug và tối ưu.
Tôi đã học C++ nhưng không đi sâu vào nó. Rust nổi bật nhờ lập trình hàm và hiệu năng.
std::regexcủa C++ có hiệu năng kém và hỗ trợ Unicode hạn chế. Nói chung, nên tránh dùng.