Erstens werden Skriptsprachen normalerweise nicht kompiliert . Das ist ein großer Teil dessen, was sie allgemein als Skriptsprachen definiert. Sie werden stattdessen oft "interpretiert". Was bedeutet dies im Wesentlichen ist , dass es eine andere Sprache (eine , die ist zusammengestellt, mehr als oft nicht), die im Text, in Echtzeit zu lesen, und Operationen, Line-by-line.
Der Unterschied zwischen dieser und anderen Sprachen besteht darin, dass Skriptsprachen in der Regel einfacher sind (im Allgemeinen als "höhere Ebene" bezeichnet). Sie sind jedoch tendenziell auch etwas langsamer, da Compiler dazu neigen, viele der Probleme zu optimieren, die mit dem "menschlichen Element" der Codierung einhergehen, und die resultierende Binärdatei für die Maschine tendenziell kleiner und schneller lesbar ist. Darüber hinaus ist weniger Aufwand für ein anderes Programm erforderlich, das zum Lesen des ausgeführten Codes mit kompilierten Programmen ausgeführt werden muss.
Sie denken jetzt vielleicht: "Nun, ich verstehe, dass es ein bisschen einfacher ist, aber warum in aller Welt würde jemand diese ganze Leistung für ein bisschen mehr Benutzerfreundlichkeit aufgeben?"
Mit dieser Annahme wären Sie nicht allein, aber das Maß an Leichtigkeit, das Sie mit Skriptsprachen normalerweise erreichen, kann je nach dem, was Sie mit ihnen machen, das Opfer an Leistung wert sein.
Grundsätzlich gilt: In Fällen, in denen die Entwicklungsgeschwindigkeit wichtiger ist als die Ausführungsgeschwindigkeit des Programms, sollten Sie eine Skriptsprache verwenden. In der Spieleentwicklung gibt es VIELE solcher Situationen. Vor allem, wenn es um triviale Dinge wie die Handhabung von Ereignissen auf hohem Niveau geht.
Bearbeiten: Der Grund, warum lua in der Spieleentwicklung eher beliebt ist, ist, dass es wohl eine der schnellsten (wenn nicht die schnellste) öffentlich verfügbaren Skriptsprachen der Welt ist. Mit dieser zusätzlichen Geschwindigkeit hat es jedoch einen Teil seiner Bequemlichkeit geopfert. Trotzdem ist es immer noch bequemer als mit C oder C ++ zu arbeiten.
Wichtige Änderung: Nach weiteren Recherchen habe ich festgestellt, dass die Definition einer Skriptsprache sehr viel kontroverser ist (siehe Ousterhouts Dichotomie ). Die Hauptkritik an der Definition einer Sprache als "Skriptsprache" besteht darin, dass es weder für die Syntax noch für die Semantik der Sprache von Bedeutung ist, dass sie interpretiert oder kompiliert wird.
Während Sprachen, die normalerweise als "Skriptsprachen" betrachtet werden, normalerweise eher traditionell interpretiert als kompiliert werden, hängt das lange und kurze ihrer Definition als "Skriptsprachen" in Wirklichkeit davon ab, wie die Leute sie sehen und wie ihre Schöpfer sie definieren.
Im Allgemeinen kann eine Sprache leicht als Skriptsprache betrachtet werden (vorausgesetzt, Sie stimmen der Dichotomie von Ousterhout zu), wenn sie die folgenden Kriterien erfüllt (gemäß dem oben verlinkten Artikel):
- Sie werden dynamisch eingegeben
- Sie haben wenig oder gar keine Vorkehrungen für komplexe Datenstrukturen
- Programme in ihnen (Skripte) werden interpretiert
Darüber hinaus wird häufig angenommen, dass eine Sprache eine Skriptsprache ist, wenn sie so konzipiert ist, dass sie zusammen mit einer anderen Programmiersprache (in der Regel einer, die nicht als Skriptsprache gilt) interagiert und funktioniert .