Effective C++ Bản Thứ 3 - nói dối e blog

Effective C++ Bản Thứ 3

! Trong hơn một tháng qua, hầu hết thời gian rảnh của tôi đều dành để nghiền ngẫm cuốn sách “Effective C++ 3rd Edition”. Việc đọc sách thật sự không dễ dàng, không chỉ vì đây là tài liệu tiếng Anh. Trước đó, tôi đã hứa với biên tập viên của một nhà xuất bản sẽ viết phần bình luận cho cuốn sách này, chuẩn bị cho ấn bản Việt Nam sắp tới. Với những ấn phẩm được in trên giấy trắng mực đen, tôi không thể không cẩn trọng từng câu chữ.

Đã 4 năm kể từ lần cuối tôi dành thời gian dài viết code C++ chuyên sâu. Trong khoảng thời gian đó, chỉ vài ngày hiếm hoi tôi viết vài nghìn dòng code, phần lớn kinh nghiệm còn lại được tích lũy qua việc đọc blog kỹ thuật trên Google Reader. Để đọc hiểu hết cuốn sách này, tôi còn phải quay lại nghiên cứu vài chương quan trọng trong cuốn “Thiết kế và tiến hóa ngôn ngữ C++”. Tuy nhiên, quá trình tiếp thu vẫn không mang lại nhiều niềm vui như mong đợi.

Có lẽ vì định kiến của tôi với C++ quá sâu sắc - giống như tình trạng say mê mù quáng trước đây. Nhiều nội dung trong sách dù mang giá trị nhất định nhưng lại quá chi tiết, bị đóng khung trong đặc thù của ngôn ngữ C++. Thay vì thừa nhận đây là điểm yếu của ngôn ngữ, tác giả lại khuyên người đọc phải dày công tìm cách tránh né các vấn đề này bằng cách riêng của C++. Trong khi đó, những vấn đề này hoàn toàn không tồn tại ở các ngôn ngữ khác lại trở thành kiến thức bắt buộc của lập trình viên C++. Cuộc đời ngắn ngủi làm sao lại phải phí thời gian giải quyết những vấn đề tự tạo ra?

Nhưng chính điều này lại phản ánh rõ ràng chủ đề cốt lõi của sách: Làm thế nào để sử dụng C++ hiệu quả. Càng đọc, tôi càng cảm thông với tác giả Scott Meyers. Tôi hoàn toàn tin rằng một chuyên gia hàng đầu như ông chắc hẳn cũng có nhiều điều muốn phàn nàn trong suốt hơn chục năm viết sách. Đêm hôm trước, khi đọc đến mục 25 về việc mở rộng hàm std::swap, đặc biệt tại trang 109 khi nói đến việc đặc biệt hóa phương thức trong không gian tên std, câu viết “Alas, the form of the prohibition may dismay you” (Than ôi, hình thức của sự cấm đoán có thể khiến bạn kinh ngạc) đã thể hiện sự bất lực rõ rệt.

Tôi bắt đầu đọc cuốn sách này trong chuyến công tác đến Quảng Châu tháng trước. Do chuyến bay bị hoãn, tôi mắc kẹt ở sân bay 4 tiếng đồng hồ, chỉ mang theo duy nhất cuốn sách và một cây bút chì. Cộng thêm thời gian trên máy bay, tổng cộng 6 tiếng tôi đã ghi chép gần 3000 chữ bên lề sách. Sau đó ở New Zealand, tôi tiếp tục vừa đọc vừa ghi chú từng chút một, chậm rãi tiến triển qua vài chục trang. Càng đọc sâu, sách dường như càng phình ra thêm dày hơn.

Nếu không vì nghĩa vụ phải hoàn thành bản bình luận mà tôi đã từ chối nhiều lần trước đó, chắc chắn tôi sẽ không kiên nhẫn đọc từng câu từng chữ tiếng Anh kỹ lưỡng đến thế. Đọc càng kỹ lại càng thấy không có nhiều điểm đáng để bình luận. Với thái độ hiện tại của tôi với C++, có lẽ tôi đã chỉ lướt qua tiêu đề mỗi chương rồi bỏ qua. Những kiến thức này dù quan trọng với lập trình viên C++, nhưng việc lặp đi lặp lại quá nhiều lần khiến tôi thấy nhàm chán. Các chi tiết cú pháp liên quan đến công cụ ngôn ngữ cũng không cần thiết với những người không làm lập trình C++. Nói chung không mang lại nhiều cảm hứng.

Kết quả là phần lớn bản thảo tôi viết đều mang tính chất tranh luận về C++. Biên tập viên nhận xét rằng phần này thiếu “gợi mở và định hướng cho người mới bắt đầu”, dù phần chỉ trích có giá trị nhưng tỷ lệ chiếm quá lớn. Ngoài ra, nhiều trang sách gần như trống trải, không có bất kỳ ghi chú nào.

Tôi hoàn toàn đồng ý rằng bất kỳ bài viết nào cũng đều có giới hạn của thời điểm hiện tại. Có thể vài năm nữa suy nghĩ của tôi sẽ thay đổi, nhưng chữ in ra giấy thì không thể sửa đổi. Nếu có thêm thời gian, tôi sẽ phải đọc lại toàn bộ một lần nữa. Tôi đang cân nhắc thêm vào một phần “Tuyên bố miễn trừ trách nhiệm” để tránh gây hiểu lầm khiến độc giả từ bỏ C++. Mong rằng những nhận định của tôi không ảnh hưởng đến doanh số của quyển sách tuyệt vời này :)

Nhân tiện, nếu so sánh kỹ lưỡng bản thứ 2 (cái mà tôi đọc trước đây với bản dịch tiếng Việt của dịch giả Hầu Tiệp) và bản thứ 3, bạn sẽ thấy đây gần như là một quyển sách hoàn toàn mới.

0%