По-перше, мови сценаріїв НАЗАД НЕ компілюються . Це велика частина того, що загалом визначає їх як мови сценаріїв. Натомість їх часто "інтерпретують". За суті це означає, що є інша мова (один , який буде складено, частіше , ніж ні) , що читає в тексті, в режимі реального часу, а також виконання операцій, рядок за рядком.
Різниця між цією та іншими мовами полягає в тому, що мови сценаріїв, як правило, більш прості (зазвичай їх називають "вищим рівнем"). Однак вони, як правило, дещо повільніше, оскільки компілятори прагнуть оптимізувати багато питань, що поставляються із "людським елементом" кодування, а отримані двійкові файли мають тенденцію бути меншими та швидшими для читання для машини. Крім того, менше витрат на інші програми, на які потрібно запустити читання запущеного коду, зі складеними програмами.
Тепер ви можете подумати: "Ну, я розумію, що це трохи простіше, але чому б хтось не відмовився від усіх цих показників за трохи додаткову простоту використання?"
Ви не будете самотні в цьому припущенні, проте рівень легкості, який ви прагнете досягти за допомогою мов сценаріїв, залежно від того, що ви робите з ними, може бути вартим жертви у виконанні.
В основному: для тих випадків, коли швидкість розвитку важливіша швидкості запуску програми - використовуйте мову сценаріїв. Існує ВЕЛИЧЕСТВО подібних ситуацій у розробці гри. Особливо, якщо мати справу з тривіальними речами, такими як обробка подій високого рівня.
Редагувати: причина Луа, як правило, досить популярна в розробці ігор, полягає в тому, що вона, можливо, є однією з найшвидших (якщо не найшвидших) загальнодоступних мов сценаріїв на землі. Однак з цією додатковою швидкістю вона пожертвувала деякими зручностями. За словами, це все-таки зручніше, ніж робота з прямими C або C ++.
Важлива редакція: Після подальших досліджень я виявив, що існує набагато більше суперечок щодо визначення мови сценаріїв (див . Дихотомію Ousterhout ). Основна критика щодо визначення мови як "мови сценаріїв" полягає в тому, що вона не є значущою ні для синтаксису, ні для семантики мови, що її інтерпретують чи складають.
Хоча мови, які зазвичай вважаються "мовами сценаріїв", традиційно інтерпретуються, а не складаються, а довге і коротке їх визначення як "мови сценаріїв" насправді залежить від того, як люди їх переглядають та як їх творці визначали їх.
Взагалі кажучи, мову можна легко вважати мовою сценаріїв (якщо припустити, що ви погоджуєтесь з дихотомією Оустерхаута), якщо вона відповідає наступним критеріям (відповідно до вищезазначеної статті):
- Вони набираються динамічно
- У них мало або взагалі не передбачено складних структур даних
- Програми в них (сценарії) інтерпретуються
Крім того, часто прийнято, що мова є мовою сценаріїв, якщо вона створена для взаємодії та функціонування поряд з іншою мовою програмування (як правило, такою, яка не вважається мовою сценаріїв).