Diskussion:Skriptsprache

message: Newsgroups: de.comp.lang.php.misc
 Subject: Re: Die leidigen "Skriptsprachen" (was: Warum OOP)
:Ich habe folgende Definition gefunden und möchte sie mal kommentarlos in den Raum stellen:
: http://de.wikipedia.org/wiki/Skriptsprache
::Dies ist nicht wirklich eine Definition, tatsaechlich ist es noch nicht mal widerspruchsfrei (Der erste Teil hebt auf Domainspezifitaet ab, der zweite auf Interpretation, der dritte auf HLL vs. Effizienz, und dann kommt eine Merkmalsliste, die von den genannten Sprachen jeweils nicht vollstaendig erfuellt wird).
::Interpretierend: awk, bash, Javascript. Perl, PHP, Python, Ruby, VBS und Pike (vormals LPC) arbeiten mit compiliertem Bytecode, haben daher auch keine "spaete syntaktische Fehlererkennung". Der Bytecode bei Pike ab Version 7.4 ist auf einigen Plattformen durch die Hardware ausfuehrbar, d.h. mit der lokalen Maschinensprache identisch.
::Dynamische, automatische Typkonversion: In Pike nicht gegeben. Bei Py weiss ich das nicht.
::Automatisches Speichermanagement: So bei allen diesen Sprachen gegeben, aber auch bei Java, Objective-C, Lisp und vielen anderen Sprachen, also kein Unterscheidungsmerkmal.
::"Dynamische Klassenzugehoerigkeit" und "prototypenbasierte Vererbung":
::"Prototypenbasierte Vererbung" ist sowieso ein unsinniger Begriff. Gemeint ist die Klassendefinition durch Prototypen in Javascript, und clone als einzige Methode, neue Instanzen zu erzeugen. Das ist so nur in Javascript in Reinform vorhanden. In PHP ist es ab PHP 5 mit dem clone-Konstruktor optional.
::"Dynamische Klassenzugehoerigkeit" bedeutet, dass jedes Objekt zugleich seine eigene Klasse ist, und daher das Zufuegen von Instanzvariablen jederzeit moeglich ist.
 // legales PHP
 class x {
   var $y;
 }
 $x = new x;
 $x->y = 1;
 $x->z = 2;
::Perl zum Beispiel hat gar kein vordefiniertes Objektsystem, sondern nur bless und einige Konventionen. Das Pantherbuch stellt zwei Klassensysteme fuer Perl vor, von denen das eine dynamisch und das andere statisch ist. Also ist dies auch kein Merkmal.
::Implizit deklarierte Variablen: So bei allen diesen Sprachen ausser Pike gegeben, aber auch in Lisp und anderen "Programmiersprachen" der Fall, also kein Merkmal.
::"Dynamische Funktionsnamen": Was das sein soll ist mir unklar. Das WikiLink ist noch nicht definiert.
::"Spaete syntaktische Fehlererkennung": Bei allen genannten Beispielen, die Bytecode erzeugen so nicht gegeben.
::Insofern finde ich den Artikel sehr, sehr fragwuerdig. Sieht man in die Diskussion zu diesem Artikel (de.wikipedia.org/wiki/Diskussion:Skriptsprache) wird deutlich, dass die Autoren das auch so sehen.
::Ich persoenlich finde den Begriff "Scriptsprache" selbst schon fragwuerdig. Er ist ziemlich Seventies, damals bezeichnete er die Batchsprache eines Betriebssystems, die als Glue-Language zur Verknuepfung von in Maschinensprache geschriebenen Kommandos diente. Heute haben wir eine viel reichere und feiner abgestufte Welt, in der dieser Begriff zunehmend bedeutungslos wird.
::Man kann bestenfalls die in der Definition gegebenen Kriterien (mit Ausnahme von "Dymanische Funktionsnamen", was immer das ist) nehmen und so eine Art "Scheinselbststaendigkeitsregelung" finden. "Eine Scriptsprache liegt vor, wenn mindestens 4 der 6 Kriterien bei einer Sprache erfuellt sind" oder so.
::Kristian
::(nicht signierter Beitrag von 195.244.233.52 (Diskussion) 13:45, 13. Jan. 2003 (CET)
thread_title:  Kommentar aus newsgroup de.comp.lang.php.misc 

message: Jetzt will ich auch mal meinen Senf zugeben. Also, Skriptsprachen wie im Artikel aus Programmiersprachen zu definieren ist schon etwas fragwüdig. Man will hier ja gerade eine Abgrenzung. Der Begriff ist an sich zu diskutieren, jedoch könnte schon jemand in Wikipedia danach suchen und sollte eine kompetente Antwort bekommen.
Man könnte den Artikel einfach danach aufziehen, dass man die Skriptsprachen, wie schon oben teilw. erwähnt, in drei Klassen einteilt:
#Sprachen, die eigentlich aus der Kommandointerpreterecke kommen. Diese setzen einen Schwerpunkt auf interaktive Benutzung und erweitern diese im Variablen, Ausdrücke, Kontrollstrukturen und Systemzugriffe. Wenn man dann das was man eintippen würde in ne Datei schreibt, kann man diese ausführen, ein Skript zur Automatisierung von Aufgaben ist entstanden (schon bin ich beim Begriff Skriptsprache!). Zu diesen Sprachen gehören unter anderem die Unix-Shells z.B. bash, DOS-COMMAND.COM mit seinen Batch-Dateien. Meist sind diese interpretierend, Syntaxfehler werden nicht sofort erkannt, oft für größere Projekte nicht sehr gut geeignet
#Sprachen, die dazu gedacht sind, als Library in Programmen diese Skripting-Fähigkeiten zu verleihen. Dazu gehört z. B. TCL, das Emacs-Lisp, GUILE, Visual Basic for Applications. Die Sprachen stellen Variablen und Kontrollstrukturen, manchmal auch Objekte etc, Stringarithmetik usw. zur Verfügung und können recht komplex werden. Oft entwickeln die Sprachen ein Eigenleben (tcl->tclsh/wish) in dem ein Wrapper die Library zum Programm erhebt und werden für große Projekte mißbraucht, ohne daß man sonst die Library zu einem richtigen Programm linkt. Die Performance ist oft schlecht, da das ursprüngliche Designziel nicht die Abarbeitung riesiger Dateien war. Dabei gibt es Ausnahmen, die das Problem von Anfang an erkennen (GUILE) und andere wie TCL, die schon in vielen Versionen versuchen, die Designfehler früherer Tage auszubügeln.
#Sprachen, die für eigentliches Skripting vorgesehen sind. Dies ist das z. B. das klassische awk. Diese ähneln Programmiersprachen, sie sind entweder interpretieren (Syntaxfehler erst beim Ausführen) oder vorkompilierend. Der Übersetzungsprozess ist recht schnell und bleibt dem Anwender verborgen, da er einfach beim Start vorangestellt wird. Die Performance dieser Sprache ist recht gut und meist ein Designziel. Zu diesen Sprachen gehören awk, perl, php, ruby. Sie erlauben einfachste Programme wie auch komplexe Projekte (siehe z. B. CPAN-Library für Perl). Der Entwicklungsprozess gegenüber klassischen Sprachen ist etwa um eine Größenordnung schneller (würd ich schätzen). Als Kommandoeingabe lassen sich diese Sprachen meist nicht gut gebrauchen (versuch mal: perl -de 42).
Der Artikel selbst ist in vielen Stellen fragwürdig, insbes. auch wenn man obige Definitionen sieht. Erwähnen sollte man auch, daß es z. B. auch Skriptprogramme gibt, die klassische Programmiersprachen wie C- oder Pascal mit Skriptingfähigkeiten ausstatten (z. B. C-Skripting Language CSL, Sourceforge Projekt). Das bedeutet auch, dass jeder Versuch einer Abgrenzung zum Scheitern verurteilt ist!
Das ganze mit dynamischen Typkonversion, Objekten usw. würd ich eigentlich weglassen. Erwähnenswert wäre vielleicht Rapid Prototyping (wie im Artikel) und die gegenüber C/C++/Pascal komfortable Speicherverwaltung mit Hilfe von Garbage Collection (Klasse 3), die jetzt dann in Programmiersprachen (Java, VB.NET) Einzug fand und findet. 
Auch so Sachen wie Flexibität usw. sind doch eher subjektiv und als Wertung aus dem Artikel IMHO zu entfernen. Hubi 08:10, 29. Aug 2003 (CEST)
replies: text: Ich habe versucht, die vorgenannten Punkte teilweise in den Artitel einzuarbeiten, wäre aber dankbar für jedwede (auch negative/vernichtende, natürlich viel lieber positive) Kritik/Diskussion Hubi 19:53, 29. Aug 2003 (CEST)
thread_title:  Weitere Meinung 

message: Es fehlt hier leider die eigentliche Definition. Skriptsprachen sind interpretierte Sprachen (im Gegensatz zu zu kompilierenden Sprachen).
--Outliver 18:01, 11. Jan. 2012 (CET)
replies: text: Das ist nicht die eigentliche Definition. Es gibt interpretierte "normale" Sprachen, und auch kompilierte Skriptsprachen. --Joachim Pense (d) 18:41, 11. Jan. 2012 (CET)
replies: text:  Okay, worin liegt dann die Definition? Es gibt dank WebGL mittlerweile 3D-Rendereing-Engines in JavaScript, was, denke ich, nicht mehr unter "kleine, überschaubare Programmieraufgaben" fallen dürfte. Und Variablen deklarieren geht auch. -- Outliver 00:55, 12. Jan. 2012 (CET)
replies: text:  „Skriptsprache“ ist einfach kein eindetig definierter Begriff. Das sollte klargestellt werden. Manchmal wird „ursprünglich für kleine Skripte gedacht“, manchmal dynamische Typisierung u. ä., manchmal die Form der Ausführung als Kriterium herangezogen. Auch, dass traditionell als solche bezeichnete Sprachen, mittlerweile oder gar schon immer auch Features speziell zur Anwendung in umfangreicheren Programmen enthalten. --Chricho ¹ 14:23, 12. Jan. 2012 (CET)

text:  „Programme, die in Skriptsprachen geschrieben sind, werden auch Skripte oder Scripts genannt.“ Das ist allerdings eindeutig falsch. Typo3 etwa ist kein Skript.  Bei Skripten kommt es maßgeblich auf den Umfang und die Verwendung an, nur sekundär auf die Sprache. --Chricho ¹ 14:26, 12. Jan. 2012 (CET)
thread_title:  Definition 

message: gudn tach!
da wir bisher fast keine belege fuer den artikel (insb. keine belege fuer die definition) haben, koennen wir ja hier mal sammeln, was es so gibt. bitte einfach die liste ergaenzen. diskutieren, dann bitte unter der liste und nicht mittendrin. -- seth 23:42, 20. Sep. 2015 (CEST)
thread_title:  Definitionen in der Literatur 

message: * "Ähnlich wie in der realen Welt gibt es im Web sehr viele unterschiedliche Skript- und Programmiersprachen." (quelle: Skriptsprachen für das Web auf pc-magazin.de) --Anton Sachs (Diskussion) 12:12, 19. Aug. 2018 (CEST)
thread_title:  Implikationen 

message: Ich bin der gleichen Meinung wie Kielersprotte67 und könnte diverse Unterschiede auflisten, die mMn gravierend sind und einer Trennung der beiden Begriffe bedürfen. Jedoch beim googlen sehe ich, dass die Lager gespalten sind. Da ich auch mir von einer erneuten Diskussion hier nicht viel erhoffe (weil dann einfach cherrygepickt wird), plädiere ich, dass der Artikel zumindest nicht für eine Seite Partei ergreift, sondern explizit genannt wird, dass es unterschiedlich aufgefasst wird. Eventuell könnte man unterschiedliche Ansichten auflisten wie in etwa hier. --Anton Sachs (Diskussion) 23:33, 15. Aug. 2018 (CEST)
thread_title:  Berücksichtigung der Umstrittigkeit  

message: Bei einigen Skriptsprachen gibt es keine Unterscheidung zwischen Programmcode und Daten.
Ich sehe keinen Unterschied dazwischen wie z.B. Java und Python Daten un d Programmcode verwenden. Kann mir jemand erklären wie das genau gemeint ist?
Inwiefern es zwischen diesen keinen Unterschied gibt? --Blauebirke 02:23, 23. Okt 2005 (CEST)
replies: text: Naja, wenn man nur C/Pascal Nachfolger nimmt, gibt's natürlich einen Unterschied. Siehe z. B. TCL, Guile, Lisp, Forth (Programmcode sind im wesentlichen Listen, die in der Skriptsprache erzeugt und mit normalen Listenkommandos manipuliert werden und anschliessend ausgeführt werden. Das ist in C/Pascal/Java/Python nicht (ohne weiteres) möglich. --Hubi 09:54, 23. Okt 2005 (CEST)
replies: text:  Danke für die Erklärung. Habe den Satz nun so geändert, dass ich es auch Verstanden hätte ;-). --Blauebirke 00:19, 25. Okt 2005 (CEST)
thread_title:  Programmcode & Daten 

message: Nach meiner Auffassung werden Templetes schon deklariert. So z. .B. der Code aus dem Artikel(Template):
 template <typename T>
 T max(T x, T y)
Hier werden x und y als Templetes deklariert. Wenn ich also z=0 schreibe führt dies immernoch zum Fehler (wenn nicht vorher T z, int z oder ähnliches steht). Dies ist nicht anders als bei OO-Sprachen Variablen vom Typl Object zu deklarieren. Bei Skriptsprachen ist dies jedoch anders. Da kann ohne Probleme eine Variable einen Wert zugeordnet werden. 
Mich verwundert hier auch, dass VisualBasic hier als nicht Skriptsprache angesprochen wird. In früheren Diskusionen (#Umsetzung von Skriptsprachen als Interpreter) wurde VisualBasic als solche eingestuft. 
--Blauebirke 17:51, 20. Mär 2006 (CET)
replies: text: Da es keinen Widerspruch gab, habe ich den Abschnitt gelöscht. --Blauebirke 05:32, 27. Mär 2006 (CEST)
thread_title:  Templates 

message: implizit deklarierte Variablen; dazu gehören auch dynamische Funktionsnamen (Funktionsnamen müssen nicht einem Compiler vorab bekannt sein)
das mag vielleicht für php oder tcl stimmen (tcl ist im punkt der speicher-/resourcenverwaltung nur ne halbe skriptsprache).... ansonsten ists für sachen die über ein "hello world" hinausgehen hinderlich und alles andere als hilfreich Ich wäre dafür den Punkt rauszulöschen, weil er eine Schwäche div. Sprachen ist und keine Stärke -- Monoxyde 20:51, 20. Jul 2006 (CEST)
replies: text: Ein Merkmal bleibt ein Merkmal, egal ob es eine Stärke oder Schwäche ist. Es ist einfacher für eine Sprache zu fordern, dass vorab bekannt sein soll von welchem Typ eine Variable ist. Daher kann man davon ausgehen, dass die sich schon was dabei gedacht haben und es nicht eine Schwäche (zu mindest nicht in allen Situationen) ist. --Blauebirke ☕✍  01:29, 21. Jul 2006 (CEST)
thread_title:  Merkmale 

message: :"Funktionsnamen müssen nicht einem Compiler vorab bekannt sein"
Das ist falsch, Skriptsprachen werden interpretiert! Niemals compiliert... wenn ich compileren würde, dann kommt am ende Binärcode raus...
Daher gelöscht! (nicht signierter Beitrag von 77.25.38.6 (Diskussion) 22:52, 29. Aug. 2008 (CEST)
thread_title:  Fehler 

message: Im Artikeltext steht: Skripte werden fast ausschließlich in Form von Quelltextdateien ausgeliefert. Könnte vielleicht jemand das Wort ausgeliefert so umformulieren, dass man eine Vorstellung davon bekommt, was damit gemient ist? Vielen Dank. -- 84.132.119.103 23:01, 4. Nov. 2008 (CET)
thread_title:  Ausgeliefert?