Unterschied zwischen Programmier- und Scriptsprache?

10 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

Skriptsprachen sind Programmiersprachen, die sich vor allem dadurch auszeichnen, dass man mit ihnen sehr leicht und sehr schnell Anwendungen entwickeln kann, was sich durch verschiedene Merkmale begründen lässt.

So sind Skriptsprachen oft

  • dynamisch typisiert (Beispiele: JavaScript, Ruby, Python, PHP)
  • mit einer automatischen Speicherverwaltung ausgestattet (Beispiele: JavaScript, Ruby, PHP >= 5.3, Python)
  • plattformunabhängig
  • interpretierte Sprachen (wobei sich das nach dem heutigen Stand sehr vermischt, JavaScript bspw. wird im Browser z.T. kompiliert; Sprachen wie Java oder Python werden erst kompiliert und später in einer zweiten Phase ausgeführt; Lisp wurde ursprünglich interpretiert, Clisp u.a. Dialekte wiederum erlauben beides)
  • mit Ausdrücken/Operationen/Funktionen versehen, die es erlauben, sich kurz und flexibel auszudrücken (Beispiel: print-Funktion in Perl, Array-Shortcuts in PHP, short-circuit evaluation in JavaScript)
  • Embedded Languages (sie werden innerhalb eines Systems / einer Engine verwendet, um nur noch bestehende Komponenten miteinander zu verbinden; Beispiele: GDScript in der Godot Engine, MEL in Autodesk Maya, JavaScript in Webbrowsern)

Eine klare Unterscheidung wird zunehmend schwieriger. Grundlegend versucht der Begriff Skriptsprache den Anwendungszweck deutlich zu machen, für den die jeweilige Sprache entworfen wurde oder inwiefern sie genutzt wird. Dazu ein einfaches Beispiel: C# wurde nicht als Skriptsprache entworfen (man verwendet die Sprache immerhin vor allem für den Aufbau von komplexen Desktop- oder Webanwendungen), wird aber inzwischen auch gern für das Scripting in Game Engines verwendet (Unity, CryEngine, Godot, Wave, Duality, ...).

Ursprünglich waren Skriptsprachen dazu gedacht, kleine Anwendungen (Skripte) innerhalb kürzester Zeit entwickeln zu können, die dann bspw. bestimmte Vorgänge automatisieren (z.B. eine automatische Formatkonversion und Speicherung von Bilddateien in Adobe-Software, der Aufruf einfacher Animationen/Effekte wie loopOut/bounce/... in Adobe After Effects, die Erstellung von Animationen mit MEL in Autodesk Maya, usw.). Da in diesen Arbeitsbereichen auch nicht zwingend Programmierer ansässig waren (und noch immer sind), sondern bspw. Designer, gab es einen zusätzlichen Anreiz, diese Sprachen in der Syntax einfach zu halten. Die Anwender sollten sich auf das Wesentliche (die Programmierung der Logik) fokussieren können und nicht mit Speicherverwaltung, explizitem Typecasting, o.ä. herumschlagen müssen.

Skriptsprachen sind über die Jahre schnell populär geworden und haben sich inzwischen in weitere Anwendungsfelder ausgebreitet. Bestes Beispiel dafür ist JavaScript. Die Sprache ist nicht mehr nur auf die Ausführung im Browser beschränkt, sondern kann auch für die Entwicklung von Anwendungen außerhalb eingesetzt werden (mobile Apps, Webserveranwendungen). Nach Möglichkeit geben Entwickler Skriptsprachen gern den Vorzug (vgl. Python where we can, C++ where we must oder Arbeitsaufteilung bei der Spiele-Entwicklung: Skripter und Programmierer).

Wenn man sich die Entwicklung der Programmiersprachen in den letzten Jahrzehnten anschaut, erkennt man durchaus einen Trend, bei dem sich bestehende/neue Programmiersprachen in ihrer Syntax den bekannten Skriptsprachen etwas annähern bzw. zumindest versuchen, Operationen sprachlich zu verkürzen.

Beispiele hierfür:

  • Das var-Schlüsselwort (C#, Java)
  • null-conditional und null-coalescing-Operatoren (C#)
  • Verzicht auf Klammern bei Schleifen oder Verzweigungen (Swift)
  • Lambda-Ausdrücke (Java, C#, C++)
  • Object initizalizer (C#) / double brace initialization (Java)

Andersherum gibt es aber ebenso eine sprachliche Entwicklung zurück zu mehr explizitem Typausdruck (Bsp.: TypeScript > Datentypen, Type-Hints in PHP).

Am treffendsten finde ich den Begriff der Skriptsprachen erklärt in Wikipedia:

Skriptsprachen sind Programmiersprachen, die über einen Interpreter ausgeführt werden. Sie verzichten manchmal auf Sprachelemente, deren Nutzen erst bei der Bearbeitung komplexerer Aufgaben zum Tragen kommt. Wikipedia

|

Python etwa ist so eine Skriptsprache und — wie alle Skriptsprachen — wenig geeignet für das Schreiben eher komplexer Programme.

Das ist wie der Unterschied zwischen einem Auto und einem Kombi.
Ein Kombi ist ein Auto aber nicht alle Autos sind auch Kombis.

Skriptsprachen sind Programmiersprachen, die über einen Interpreter ausgeführt werden.
Es sind also nur eine Art von Programmiersprachen.
Neben Skriptsprachen gibt es aber z.B. auch Compiler-Sprachen.

Es gibt keinen Unterschied — wenn wir uns auf der Ebene der Programmierung bewegen.

Alles, was in einer höheren Programmiersprache geschrieben wurde, selbst Javascript, landet letzten Endes in einem Kompilierer.

Skriptsprachen, die interpretiert, also nicht kompiliert werden, dienen eher einer Beschreibung als einer Programmierung. Der hauptsächliche Unterschied ist also, ob Fehler toleriert/ignoriert werden, oder der gesamte Code bei einem einzigen Fehler nicht ausfühbar ist.

Streng genommen. — Allerdings hat sich der Begriff »Skriptsprache« für alles durchgesetzt, was sich in einem Browser, egal ob client- oder serverseitig darstellen lässt, also unter anderem PHP, Java (Applet) oder ActionScript (Flash).

Vorweg: Alle Skriptsprachen sind auch Programmiersprachen.

Der Unterschied ist: Skriptsprachen müssen nicht kompliert werden. Sie werden über einen Interpreter ausgeführt. Dadurch laufen sie aber folglich langsamer, weil sie nicht bis auf die unterste Ebene optimiert sind.

Woher ich das weiß:Hobby – Programmieren ist mein Hobby & Beruf