Đơn giản: Lua có nhiều mục tiêu "thích hợp" hơn Python .
Python được cho là hữu ích như một ngôn ngữ lập trình chung. Vì vậy, nó hữu ích trong nhiều trường hợp. Nó bao gồm nhiều loại ứng dụng nổi tiếng nhưng không tham gia cạnh tranh trực tiếp với các ngôn ngữ khác có thể nhắm mục tiêu vào các ràng buộc cụ thể, nhưng tính đơn giản của cú pháp.
Lua hoàn toàn được nhắm mục tiêu là một ngôn ngữ kịch bản nhúng. Mục đích ban đầu của nó, ngay cả khi hiện tại nó được sử dụng trong các bối cảnh khác, như hệ thống xây dựng; sẽ được nhúng trong phần mềm và cho phép thực hiện dễ dàng các chức năng và cấu trúc tập lệnh cụ thể của miền. Nó tối giản đến mức nó thậm chí có thể được sử dụng trên phần cứng thực sự bị hạn chế (tôi đã sử dụng Lua trên NintendoDS), nó nhẹ, dễ sử dụng, NHANH CHÓNG và là một ngôn ngữ tối giản nhưng được cho là mở rộng rất nhiều phương ngữ (nhập khẩu mô hình như hướng đối tượng) có sẵn. Nó dễ mang theo (ANSI C) đến mức bạn có thể sử dụng nó trên bất kỳ phần cứng nhúng nào với dung lượng bộ nhớ vừa đủ cho phần mềm nhúng hiện đại (nếu tôi nhớ rõ thì lua vm mặc định là khoảng 400ko và gần như sẽ không bao giờ phát triển nếu bạn không tạo các đối tượng ...).
Vì vậy, Lua ban đầu được sử dụng trong ngữ cảnh mà bạn cần nhúng ngôn ngữ kịch bản cho ứng dụng của mình .
Python được sử dụng cho ... hầu hết mọi thứ không yêu cầu ngôn ngữ thích hợp hơn (bạn có thể tạo các trò chơi khá hiệu quả bằng Python, nhưng một số trò chơi nặng về hiệu năng thực sự cần phải tránh hệ thống như vậy).
Đơn giản là Python được sử dụng trong nhiều ngữ cảnh hơn Lua. Theo như tôi biết, ngoài Android (cung cấp hỗ trợ Java và ngôn ngữ bản địa), Google không phải là một công ty phần mềm nhúng nên họ không thực sự cần Lua ở mọi nơi, trong khi Python hữu ích cho mọi việc họ làm (web, xây dựng hệ thống , truyền thông, web và web).
Python cũng được sử dụng trong rất nhiều trò chơi để nhúng kịch bản, nhưng nó nặng và chậm hơn Lua. Cú pháp của Python làm cho nó phù hợp hơn với các trò chơi lớn phụ thuộc nhiều vào thông tin theo kịch bản trong cấu trúc trò chơi của chúng (không chắc là tôi rõ ràng nhưng chỉ nghĩ rằng nếu bạn cần một "ngôn ngữ hoàn chỉnh thực sự" để viết kịch bản, có thể nhúng Python một ý tưởng tốt, nếu hiệu suất là tốt cho bạn). Python không được tạo ra để được nhúng, vì vậy điều đó tốt. Một tương đương với Python được nhắm mục tiêu được nhúng trong C ++ là Falcon.
Để so sánh cực đoan, một số ngôn ngữ nhắm mục tiêu nhúng và cố gắng có cú pháp đầy đủ hơn Lua tối giản và cạnh tranh về hiệu suất: ChaiScript, AngelScript, Io ...
Nhân tiện, tôi đã thấy các hệ thống xây dựng mới như PreMake hoặc Bam sử dụng Lua làm ngôn ngữ tệp xây dựng. Ý tưởng là nó nhẹ và nổi tiếng từ các nhà phát triển trò chơi (xây dựng hệ thống trong phát triển trò chơi là một vấn đề lớn). Vì vậy, có lẽ đó là một lĩnh vực khác mà Lua có thể được đánh giá cao hơn. Nó chắc chắn thân thiện với người dùng hơn cú pháp CMake ....