Hab ich das jetzt richtig verstanden? Um die in verschiedenen Sprachen programmierten Programmteile gemeinsam laufen zu lassen, nutzt man z.B. eigene Scriptsprachen?
Letztendlich läuft das auf irgendeiner Ebene darauf hinaus.
Es gibt da so viele Möglichkeiten, da steig ich dann auch nicht mehr ganz durch.
z.B. gibt es Programmbibliotheken, in denen jeweils ein ganzer Sack von Funktionen drin steckt, hast du sicher auch schon auf deiner Festplatte gefunden: DLL-Dateien (Dynamic Link Libraries). Die sind meist in C++ oder einer anderen Hochsprache geschrieben. Gilt nur für Windows-Plattformen. Was es da auf Mac OS gibt, weiß ich nicht, oder wie das in Linux läuft.
Dann hast du eine kleine EXE-Datei, die sich dann sämtlicher DLL-Dateien bedient, um z.B. ein Datei-Öffnen Fenster auf zu machen (das machen dann die System-DLLs die von Anfang an bei Windows dabei sind) oder du spielst ein spezielles Musikformat ab, da hat der Player dann z.b. eine eigene DLL mitgebracht, die nur die Aufgabe hat, dieses Musikformat abzuspielen.
Das schöne daran: Alles ist nett verpackt, wie "Black Boxen". In so einer DLL sind manchmal hunderte von Funktionen, Variablen, Klassen usw. aber es reicht aus, wenn man die Funktion kennt, die man braucht.
Bis dahin ist aber noch nicht unbedingt eine Scriptsprache aufgetaucht. Die tauchen eher ganz am vorderen Ende auf (Stichwort "Launcher"), als Start-Programm, die ein nettes Auswahl-Menu anzeigen und vielleicht bestimmte Einstellungen, die man in diesem Menu macht an das Programm übergeben.
...diese Scriptsprachen tauchen dann aber auch am anderen Ende, bzw. ganz tief, mitten im Programm wieder auf. z.B. wenn bei Quake die Gegner durch die Gegend laufen und einen angreifen:
Hier haben die Entwickler eine eigene Scriptsprache entwickelt (Quake C), mit der sich einfach solche Dinge machen lassen.
Das schöne daran: Man muss gar nicht mal so viel Erfahrung in Programmierung haben, um das Spiel mit neuen Waffen, Gegnern und Regeln zu erweitern. Die "Hardcore-Programmierer" haben auch besseres zu tun, als zu programmieren, dass ein Gegner nicht dauernd gegen die Wand läuft oder so.
Blender ist auch so ein Beispiel.
Es ist ein 3D-Programm (übrigens frei), mit dem 3D-Animationen und vieles mehr gebastelt werden können. Wenn andere Nutzer diese Programm erweitern wollen, z.B. eine Funktion, die automatisch ganze Bäume konstruiert, können sie das mit der Scriptsprache Python machen. Python ist dabei keine Eigenentwicklung, sondern schon etwas verbreiteter. Das ist von Vorteil, da einigen Nutzern diese Sprache schon bekannt ist.
Ansonsten ist ein ganz klassisches Beispiel, bei dem sehr viele Scriptsprachen zusammenarbeiten, tadaaaa... das Internet.
Sobald du http:... eingibst, landet deine Anfrage auf irgendeinem Server.
Dort wird meist schon das erste Skript gestartet (über einen kleinen Umweg, aber das ist mir dann doch zu wild erst mal). Meist PHP, ASP, etc.
Dieses PHP-Script wird vom Server interpretiert. Der server selber besteht aus vielen Programmen, teilweise in Hochsprache, teilweise auch als Skript programmiert, passend für den jeweiligen Server-Typ.
Dann wird aus diesem Skript die Seite im Browser aufgebaut. Auf dieser Seite befindet sich wiederum JavaScript oder Flash, wodurch wieder Skripte gestartet werden.
Der Browser selber ist meist in einer Hochsprache programmiert, enthält aber eben wieder Skript-Interpreter, die z.B. Javascript ausführen.
Wenn nun ein Flash auf der Seite ist, wird ein Plugin geladen (übrigens eine .DLL-Datei, in Hochsprache programmiert), die wiederum das Flash ausführt.
...jetzt käme eigentlich noch Metacode/Bytecode ins spiel, denn es gibt Fälle, da wird ein Script nicht direkt interpretiert, sondern das Script erst mal "vorgekaut", damit es schneller ausgeführt werden kann. Dieses "vorgekaute" Skript ist dann der Metacode/Bytecode... ja ich hör ja schon auf... *bad putzen geht*