Phiên Bản Lua 5.2.0 (Work1) Chính Thức Ra Mắt
Bài thông báo chính thức đã được đăng tải cách đây vài ngày, khiến cộng đồng Lua trở nên sôi động hơn bao giờ hết. Rất nhiều chuyên gia hàng đầu đã tham gia thảo luận sôi nổi về bản cập nhật này.
Anh Mike Pall - tác giả của LuaJIT - đã thể hiện rõ sự không hài lòng về việc thư viện bit không sử dụng giải pháp do chính anh phát triển. Tuy nhiên, số lượng người tỏ ra phấn khích với những thay đổi mới vẫn chiếm đa số. Mỗi lần Lua nâng cấp phiên bản nhỏ, những thay đổi mang tính cách mạng luôn khiến các dự án lớn phải “đau đầu” tái cấu trúc. Điều này vốn dĩ đã trở thành đặc trưng của triết lý thiết kế từ “bộ ba quyền lực” sáng tạo nên Lua. Cá nhân tôi - người thường xuyên viết lại mã nguồn từ đầu - lại rất thích phong cách táo bạo này. Tôi cho rằng đây chính là cách để Lua ngày càng trở nên ổn định và mạnh mẽ hơn.
Dù sao thì mã nguồn mở của Lua luôn là một tài liệu tham khảo tuyệt vời cho các lập trình viên.
Ở phiên bản này, hai hàm setfenv
và getfenv
đã bị loại bỏ hoàn toàn. Dự đoán điều này sẽ ảnh hưởng đến rất nhiều dự án hiện có, trong đó có cả những dự án của riêng tôi. Tuy nhiên, việc cập nhật lại cũng không quá phức tạp nếu bạn nắm rõ cơ chế hoạt động mới.
Một trong những điểm mới tôi cực kỳ tâm đắc là cú pháp in exp do ... end
. Cú pháp này giúp xây dựng các ngôn ngữ DSL trở nên trực quan và an toàn hơn rất nhiều so với việc sử dụng setfenv
như trước đây. Không chỉ dễ đọc hơn mà còn hạn chế tối đa khả năng phát sinh lỗi trong quá trình triển khai.
Nếu phải mô phỏng tính năng tương tự bằng setfenv
, cách viết sẽ trở nên cồng kềnh và khó bảo trì hơn nhiều. Độc giả quan tâm có thể tham khảo bài viết ngắn của tôi vài năm trước, đặc biệt là phần giải thích cách mô phỏng khối with
trong Pascal.
Ngoài ra còn rất nhiều thay đổi nhỏ khác, mỗi thay đổi dù lớn hay nhỏ đều có thể ảnh hưởng đến các dự án cũ. Nhưng mặt tích cực là điều này lại thúc đẩy các lập trình viên viết lại mã nguồn theo hướng chuẩn mực và hiện đại hơn - một điều đáng mừng cho sự phát triển chung của cộng đồng.
Tôi tin rằng khi mã nguồn được viết chuẩn chỉ theo chuẩn mới, hiệu năng tổng thể của ứng dụng cũng sẽ được cải thiện đáng kể.