1 điểm bởi GN⁺ 2024-12-25 | 1 bình luận | Chia sẻ qua WhatsApp
  • 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

 
GN⁺ 2024-12-25
Ý 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ó.

    • Sự kiểm soát chi tiết của C++ mang lại nhiều niềm vui.
    • Hệ thống build và quản lý gói vẫn rất khó.
    • Ngữ pháp và runtime của C++ có tính phức tạp.
  • 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.

    • Hiệu năng và các khía cạnh kỹ thuật của C++ thật hấp dẫn.
    • C++ không phù hợp cho việc phát triển "phần mềm thực thụ".
  • 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.

    • Cần thời gian để hiểu những chi tiết của C++.
  • 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.

    • Sự phức tạp của C++ trở thành gánh nặng.
  • 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.

    • Vấn đề là phát triển phần mềm tệ.
  • 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.

    • Khi cần kiểm soát mức thấp, tôi sẽ dùng C.
  • 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.

    • Việc tích hợp các thư viện khác vào dự án rất khó.
  • 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.

    • Với các codebase cũ, trải nghiệm lại rất khác.
  • 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.

    • Hiếm khi có lý do để sử dụng C++.
  • std::regex củ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.