Po pierwsze, języki skryptowe ZWYKLE nie są kompilowane . To duża część tego, co ogólnie określa je jako języki skryptowe. Zamiast tego są często „interpretowani”. Oznacza to w istocie, że istnieje inny język (taki, który jest kompilowany, najczęściej), który czyta tekst w czasie rzeczywistym i wykonuje operacje wiersz po wierszu.
Różnica między tym a innymi językami polega na tym, że języki skryptowe są zwykle prostsze (powszechnie określane jako „wyższy poziom”). Jednak są one również nieco wolniejsze, ponieważ kompilatory zwykle optymalizują wiele problemów związanych z „ludzkim elementem” kodowania, a wynikowy plik binarny jest zwykle mniejszy i szybszy do odczytania dla maszyny. Dodatkowo, mniejszy jest narzut związany z innym programem, który należy uruchomić, aby odczytać uruchamiany kod, za pomocą skompilowanych programów.
Być może zastanawiasz się: „Cóż, rozumiem, że jest to trochę łatwiejsze, ale dlaczego, u licha, ktoś miałby rezygnować z całej wydajności, aby uzyskać dodatkową łatwość użycia?”
W tym założeniu nie byłbyś sam, jednak poziom łatwości uzyskiwania przez Ciebie języków skryptowych, w zależności od tego, co z nimi robisz, może być wart poświęcenia w wydajności.
Zasadniczo: W przypadkach, w których szybkość rozwoju jest ważniejsza niż szybkość uruchomionego programu, użyj języka skryptowego. Istnieje wiele takich sytuacji podczas tworzenia gier. Zwłaszcza w przypadku błahych rzeczy, takich jak obsługa zdarzeń na wysokim poziomie.
Edycja: Powodem, dla którego lua jest raczej popularna w tworzeniu gier jest to, że jest prawdopodobnie jednym z najszybszych (jeśli nie najszybszych) publicznie dostępnych języków skryptowych na świecie. Jednak dzięki tej dodatkowej prędkości poświęcił trochę swojej wygody. To powiedziawszy, nadal jest prawdopodobnie wygodniejsze niż praca z prostym C lub C ++.
Ważna edycja: po dalszych badaniach odkryłem, że istnieje znacznie więcej kontrowersji dotyczących definicji języka skryptowego (patrz dychotomia Ousterhouta ). Podstawowa krytyka definiowania języka jako „języka skryptowego” polega na tym, że nie ma on znaczenia dla składni ani semantyki języka, który jest interpretowany lub kompilowany.
Podczas gdy języki, które są zwykle uważane za „języki skryptowe”, są zwykle interpretowane tradycyjnie, a nie kompilowane, długa i krótka definicja „języków skryptowych” zależy od kombinacji tego, jak ludzie je postrzegają i jak ich twórcy zdefiniowali.
Mówiąc ogólnie, język można łatwo uznać za język skryptowy (zakładając, że zgadzasz się z dychotomią Ousterhouta), jeśli spełnia on następujące kryteria (zgodnie z linkiem do powyższego artykułu):
- Są wpisywane dynamicznie
- Mają niewielką lub żadną rezerwę na złożone struktury danych
- Programy w nich (skrypty) są interpretowane
Ponadto często przyjmuje się, że język jest językiem skryptowym, jeśli został zaprojektowany do interakcji i działania wraz z innym językiem programowania (zwykle takim, który nie jest uważany za język skryptowy).