Thứ nhất, ngôn ngữ kịch bản là USUALLY không được biên dịch . Đó là một phần lớn của những gì thường định nghĩa chúng là ngôn ngữ kịch bản. Họ thường, thay vào đó, "giải thích." Điều này về cơ bản có nghĩa là có một ngôn ngữ khác (một ngôn ngữ được biên dịch, thường xuyên hơn không) đang đọc trong văn bản, trong thời gian thực và thực hiện các hoạt động, từng dòng một.
Sự khác biệt giữa ngôn ngữ này và các ngôn ngữ khác là ngôn ngữ kịch bản có xu hướng đơn giản hơn (thường được gọi là "cấp độ cao hơn"). Tuy nhiên, chúng cũng có xu hướng chậm hơn một chút, vì trình biên dịch có xu hướng tối ưu hóa rất nhiều vấn đề đi kèm với "yếu tố con người" của mã hóa, và kết quả là nhị phân có xu hướng nhỏ hơn và nhanh hơn để đọc cho máy. Ngoài ra, có ít chi phí hơn từ một chương trình khác cần được chạy để đọc mã đang được chạy, với các chương trình được biên dịch.
Bây giờ, bạn có thể nghĩ, "Ồ, tôi hiểu rằng nó dễ hơn một chút, nhưng tại sao một người nào đó sẽ từ bỏ tất cả hiệu suất đó để dễ sử dụng hơn một chút?"
Bạn sẽ không đơn độc trong giả định này, tuy nhiên mức độ dễ dàng bạn có được với các ngôn ngữ kịch bản, tùy thuộc vào những gì bạn đang làm với chúng, có thể rất đáng để hy sinh trong hiệu suất.
Về cơ bản: Đối với các trường hợp tốc độ phát triển quan trọng hơn tốc độ của chương trình đang chạy - sử dụng ngôn ngữ kịch bản. Có rất nhiều tình huống như thế này trong phát triển trò chơi. Đặc biệt là khi xử lý những việc nhỏ nhặt như xử lý sự kiện cấp cao.
Chỉnh sửa: Lý do lua có xu hướng khá phổ biến trong phát triển trò chơi là vì nó được cho là một trong những ngôn ngữ kịch bản công khai nhanh nhất (nếu không phải là nhanh nhất) trên trái đất. Tuy nhiên, với tốc độ tăng thêm này, nó đã hy sinh một số tiện lợi. Điều đó đang được nói, nó vẫn thuận tiện hơn nhiều so với làm việc với C hoặc C ++.
Chỉnh sửa quan trọng: Sau khi nghiên cứu sâu hơn, tôi thấy rằng có nhiều tranh cãi hơn về định nghĩa của ngôn ngữ kịch bản (xem phần phân đôi của Ousterhout ). Sự chỉ trích chính của việc định nghĩa một ngôn ngữ là "ngôn ngữ kịch bản" là nó không có ý nghĩa đối với cú pháp cũng như ngữ nghĩa của ngôn ngữ mà nó được giải thích hoặc biên dịch.
Mặc dù các ngôn ngữ thường được coi là "ngôn ngữ kịch bản" thường được hiểu theo truyền thống, thay vì được biên dịch, nhưng định nghĩa dài và ngắn của chúng là "ngôn ngữ kịch bản" thực sự phụ thuộc vào cách mọi người xem chúng và cách người tạo ra chúng định nghĩa chúng.
Nói chung, một ngôn ngữ có thể dễ dàng được coi là ngôn ngữ kịch bản (giả sử bạn đồng ý với sự phân đôi của Ousterhout) nếu nó đáp ứng các tiêu chí sau (theo bài viết được liên kết ở trên):
- Chúng được gõ động
- Họ có ít hoặc không có điều khoản cho các cấu trúc dữ liệu phức tạp
- Các chương trình trong đó (script) được diễn giải
Ngoài ra, người ta thường chấp nhận rằng một ngôn ngữ là ngôn ngữ kịch bản nếu nó được thiết kế để tương tác và hoạt động cùng với ngôn ngữ lập trình khác (thường là ngôn ngữ không được coi là ngôn ngữ kịch bản).