Đây là một câu hỏi rất thú vị. Công việc ban ngày của tôi là học các ngôn ngữ lập trình, và Lua sẽ trả tiền học tập cẩn thận. Tôi sẽ nói rằng rất ít ngôn ngữ khác (có lẽ là Icon và CLU). Xin lưu ý rằng đó là ngôn ngữ như một toàn bộ, không phải là các tính năng riêng lẻ, điều này làm cho Lua xứng đáng được học tập.
Đây có phải là kết quả của những ý tưởng mới thú vị mà người triển khai đã có hay đó là kết quả của việc thực hiện tốt các ý tưởng được thiết lập tốt?
Cả hai. Đối với các chi tiết, nguồn tốt nhất của bạn cho một câu trả lời cho câu hỏi này là giấy The Evolution of Lua, xuất hiện tại Hội nghị chuyên đề ACM lần thứ ba về Lịch sử Ngôn ngữ lập trình. Nhưng tôi sẽ thêm một vài bình luận.
Việc sử dụng bảng Lua như chỉ có thể thay đổi loại, phi nguyên tử của dữ liệu được phát minh bởi đội Lua. Chúng được lấy cảm hứng từ sự phát triển của CLU, và tôi tin rằng họ đã nhận thức được công việc tương tự trong Awk và Icon, nhưng sự tinh tế ở mức độ này là một đóng góp quan trọng của đội Lua.
Bảng cũng có triển khai rất hiệu quả, được phát minh bởi nhóm Lua.
Các tính năng chức năng của Lua có ngữ nghĩa tương tự như Đề án, nhưng Lua có thực hiện duy nhất của chức năng hạng nhất, mà tôi nghĩ rằng họ phải nộp cho công bố trên Tạp chí chức năng lập trình.
API để nhúng đã được tinh chỉnh rất nhiều trong những năm qua. Đặc điểm phân biệt chính của nó là các kiểu trừu tượng do người dùng định nghĩa có thể tham gia đầy đủ vào quá trình nhúng. Đây là thuộc tính làm cho API Lua vượt trội hơn API Tcl, chẳng hạn. API Lua đã trải qua rất nhiều tinh tế trong những năm qua, kể cả từ lần xuất bản đầu tiên của nó ở phiên bản 2.5. Các nhà thiết kế Lua xứng đáng nhận được rất nhiều tín dụng ở đây.
Công nghệ thu gom rác là tiêu chuẩn.
Lua coroutines đại diện cho một ý tưởng mới về một số ý tưởng rất cũ. Việc lấy mới được coi là đáng được công bố trong ACM Giao dịch về Ngôn ngữ lập trình và Hệ thống, vì vậy một lần nữa tôi nghĩ rằng nhóm Lua nhận được tín dụng cho độc đáo.
Biến đổi Lua có liên quan đến giao thức Common Lisp metaobject.
Tôi nghĩ rằng kết quả thành công Lua từ một sự kết hợp độc đáo của những điểm mạnh của đội Lua:
Nếu bạn đọc HOPL paper, bạn sẽ thấy rằng đội Lua là cũng nhận thức được nhiều phát triển trong các ngôn ngữ lập trình và có thể chọn trong số các ý tưởng hay nhất. Hầu hết các nhà thiết kế ngôn ngữ kịch bản phổ biến đều là những người nghiệp dư và chưa được thông báo gần như đầy đủ.
Lua tuyệt vời được thiết kế sao cho các mảnh vừa khít với nhau rất tốt, với tỷ lệ công suất trên trọng lượng tuyệt vời. Đây là kết quả của rất nhiều sàng lọc theo thời gian, và PUC-Rio đã sẵn sàng cho đội Lua để làm việc về thiết kế và thực hiện ngôn ngữ thay vì nghiền ra một số lượng lớn các giấy tờ. Công việc này không thể được thực hiện tại một trường đại học ở Bắc Mỹ.
Lua tuyệt vời được thiết kế. Việc thực hiện chỉ là đáng kinh ngạc tốt. Đó là một phần công việc tuyệt vời của các kỹ sư tuyệt vời và một phần cơ hội để tiếp tục sửa đổi thiết kế trong khoảng thời gian 15 năm.
tôi sẽ đóng bằng cách hỏi độc giả không đánh giá thấp những khó khăn của chọn và lọc ý tưởng tốt được thành lập để tạo thành một tổng thể chặt chẽ. Đây là công việc cực kỳ khó khăn và hiếm khi được công nhận như nó cần.
Nguồn
2010-01-20 15:17:57
+1: câu trả lời rất hay –
Hiện tại, hãy xem "Triển khai Lua 5.0" tại http://www.lua.org/doc/jucs05.pdf Chúng tôi đang nghiên cứu bài viết đó, Norman, nhưng Lua 5.2 đang thu hút sự chú ý của chúng tôi ngay bây giờ ... – lhf
Bài báo TOPLAS, Xem lại Coroutines, đã được thảo luận trên LtU, vì lý do nào đó mà tôi không chú ý đến: http://lambda-the-ultimate.org/node/ 2868 –