Was ist der Unterschied zwischen einem „Drehbuch“ und einer „Anmeldung“?

StackOverflow https://stackoverflow.com/questions/98268

  •  01-07-2019
  •  | 
  •  

Frage

Ich beziehe mich auf Unterscheidungen wie in diese Antwort :

  

... bash ist nicht zum Schreiben von Anwendungen ist es für, na ja, Scripting. So sicher, Ihre Anwendung möglicherweise einige Housekeeping-Skripte, aber nicht gehen critical-business-logic.sh schreiben, weil eine andere Sprache für Sachen wie das wahrscheinlich besser ist.

Als Programmierer, der in vielen Sprachen gearbeitet hat, scheint dies C, Java und andere kompilierte Sprache Snobismus zu sein. Ich bin nicht auf der Suche nach reenforcement meiner Meinung oder von Hand wellig Antworten. Vielmehr möchte ich wirklich wissen, was technische Unterschiede bezeichnet werden.

(Und ich benutze C in meinem Job, ich bin also nicht nur defensiv zu sein.)

War es hilfreich?

Lösung

Traditionell wird ein Programm kompiliert und ein Skript interpretiert, aber das ist nicht wirklich wichtig, mehr. Sie können eine kompilierte Version der meisten Skripte generieren, wenn Sie wirklich wollen, und andere ‚kompiliert‘ Sprachen wie Java sind in der Tat interpretiert (auf Byte-Code-Ebene).

Eine modernere Definition könnte sein, dass ein Programm soll durch einen Kunden (vielleicht um einen internen) und damit verwendet werden soll, sollte Dokumentation und Support umfassen, während ein Skript in erster Linie für die Verwendung des Autors bestimmt ist.

Das Web ist ein interessantes Gegenbeispiel. Wir alle genießen suchen Dinge mit der Google-Suchmaschine auf. Der größte Teil des Codes, der in die Schaffung der ‚Datenbank‘ geht es verweist verwendet wird, nur von seinen Autoren und Maintainer. Ist, dass es ein Skript machen?

Andere Tipps

Ich würde sagen, dass eine Anwendung verwendet wird, neigt dazu, interaktiv, wo ein Skript seinen Lauf würde, geeignet für Batch-Arbeit. Ich glaube nicht, es ist eine konkrete Unterscheidung.

In der Regel ist es "Skript" versus "Programm".

Ich bin mit euch, dass diese Unterscheidung meist „Sprache Snobismus zusammengestellt“ ist, oder Larry Wall zu zitieren und die andere Seite des Zauns nehmen „ist ein Skript, was die Schauspieler haben, ist ein Programm, mit dem Publikum gegeben“.

Dies ist ein interessantes Thema, und ich glaube nicht, gibt es sehr gute Richtlinien für die einen „Skript“ Differenzierung und eine „Anwendung.“

Lassen Sie uns einen Blick auf einige Wikipedia-Artikel ein Gefühl der Unterscheidung zu erhalten.

Script (Wikipedia -> Scripting-Sprache):

  

Eine Skriptsprache, Skriptsprache oder Erweiterungssprache, ist eine Programmiersprache, die eine Software-Anwendung steuert. „Scripts“ wird häufig im Unterschied zu „Programmen“ behandelt, die unabhängig von jeder anderen Anwendung auszuführen. Zugleich sind sie verschieden von dem Kern-Code der Anwendung, die in der Regel in einer anderen Sprache geschrieben ist, und durch zugänglich für den Endbenutzer ist sie das Verhalten der Anwendung ermöglichen, die Bedürfnisse des Benutzers angepasst werden.

Anwendung (Wikipedia -> Anwendungs-Software -> Terminologie)

  

In der Informatik ist eine Anwendung, ein Computerprogramm entwickelt, um Menschen führen eine bestimmte Art von Arbeit zu helfen. Eine Anwendung unterscheidet sich somit von einem Betriebssystem (das einen Computer ausgeführt wird), ein Dienstprogramm (die Aufgaben der Wartung oder für allgemeine Zwecke durchführt), und eine Programmiersprache (mit denen Computerprogramme erstellt werden). In Abhängigkeit von der Arbeit, für die es entworfen wurde, kann eine Anwendung Text, Zahlen, Grafiken oder eine Kombination dieser Elemente manipulieren.

die oben genannten Einträge Lese scheint darauf hinzudeuten, dass die Unterscheidung ist, dass ein Skript von einem anderen Stück Software „gehostet“ wird, während eine Anwendung nicht. Ich nehme an, kann argumentiert werden, wie beispielsweise Shell-Skripts, das Verhalten der Schale zu steuern, und Perlskripte das Verhalten des Interpreters steuert gewünschte Operationen durchzuführen. (Ich finde, dass das ein wenig bisschen weit hergeholt sein kann, so dass ich kann mit ihm nicht ganz zustimmen.)

Wenn es bis zu ihm kommt, ist es meiner Meinung nach, dass die umgangssprachliche Unterscheidung in Bezug auf die Skala des Programms vorgenommen werden. Skripte sind in der Regel kleiner in Skala, wenn sie Anwendungen verglichen.

, auch im Hinblick auf den Zweck, ein Skript im Allgemeinen führt Aufgaben , die sich um beispielsweise genommen werden muss, sagen, Skripte erstellen, die mehrere Release-Versionen für einen bestimmten Teil der Software erzeugen. Auf der otherhand, werden Anwendungen in Richtung ausgerichtet eine Funktionalität , die mehr verfeinert und ausgerichtet auf einen Endverbraucher ist. Zum Beispiel Notepad oder Firefox.

John Ousterhouts (der Erfinder von TCL) hat einen guten Artikel unter http: // www. tcl.tk/doc/scripting.html wo er eine Unterscheidung zwischen System Programmiersprachen schlägt (für die Umsetzung Bausteine, die Betonung auf Korrektheit, Typsicherheit) vs Skriptsprachen (für die Kombination von Bausteinen, die Betonung auf Ansprechbarkeit auf sich ändernde Umgebungen und Anforderungen, einfache Konvertierung in und aus Textdarstellungen). Wenn Sie mit diesem Kategorisierungssystem gehen, dann 99% der Programmierer Arbeitsplätze zu tun, die besser geeignet, um Skriptsprachen sind als das System Programmiersprachen.

Ein Skript dazu neigt, eine Reihe von Befehlen, die beginnt, läuft und endet. Es erfordert oft keine / wenig menschliche Interaktion. Eine Anwendung ist ein „Programm“ ... es erfordert oft menschliche Interaktion, es neigt dazu, größer zu sein.

Script mir bedeutet line-by-line Interpretation des Codes. Sie können ein Skript öffnen und seine Programmierer lesbaren Inhalt anzuzeigen. Eine Anwendung setzt eine eigenständige ausführbare kompilierte Datei.

Es ist oft nur ein semantisches Argument, oder sogar eine Möglichkeit, bestimmte Programmiersprachen von verunglimpfen. Soweit es mich betrifft, ein „Script“ ist eine Art von Programm, und die genaue Definition ist etwas vage und variiert je nach Kontext.

Ich könnte den Begriff „Skript“ verwenden, um ein Programm zu verstehen, die eher führt in erster Linie linear, als mit vielen sequentiellen Logik oder Subroutinen, ähnlich wie ein „Skript“ in Hollywood ist eine lineare Abfolge von Anweisungen für einen Schauspieler auszuführen. Ich kann es verwenden, um ein Programm zu verstehen, die in einem größeren Programm eingebettet in einer Sprache geschrieben ist, zu dem Zweck, das Programm zu fahren. Zum Beispiel die Automatisierung von Aufgaben unter dem alten Mac OS mit Applescript oder ein Fahrprogramm, das sich mit einem eingebetteten TCL-Schnittstelle in irgendeiner Weise aussetzt.

Aber in all diesen Fällen ein Skript ist eine Art von Programm.

Der Begriff „Skriptsprache“ wurde für dynamisch interpretiert (manchmal kompiliert) Sprachen, in der Regel diese haben viele gemeinsame Merkmale wie sehr hohen Niveau Anweisungen, gebaut in Hashes und beliebiger Länge Listen und andere hohe Datenstrukturen etc. Aber diese Sprachen sind in der Lage sehr groß, kompliziert, modular, gut gestaltete Programme, also, wenn Sie ein „Drehbuch“ als etwas denken anderes als ein Programm, dieser Begriff könnte verwirren.

Siehe auch Ist es ein Perl-Programm oder ein Perl-Skript? in perlfaq1.

Ein Skript läuft in der Regel als Teil einer größeren Anwendung in einer Scripting-Engine z.B. JavaScript -> Browser Dies steht im Gegensatz zu den beiden traditionellen statischen typisierten Sprachen übersetzt und auf dynamische Sprachen, in denen der Code soll den Hauptteil der Anwendung bilden.

Eine Anwendung ist eine Sammlung von Skripten auf einen gemeinsamen Satz von Problemen ausgerichtet.

Ein Skript ist ein Stück Code für eine ziemlich spezifische Aufgabe.

IMO, hat die Differenz nichts mit der Sprache zu tun, die verwendet wird. Es ist möglich, eine komplexe Anwendung mit bash zu schreiben, und es ist möglich, ein einfaches Skript mit C ++ zu schreiben.

Zunächst einmal würde Ich mag es glasklar machen, dass ein Skript ist ein Programm, . Mit anderen Worten, ist ein Skript eine Reihe von Anweisungen.

Programm:

Eine Reihe von Anweisungen, die als Programm bekannt ist, kompiliert werden sollen.

Script:

Eine Reihe von Anweisungen, die als Script ist bekannt interpretiert werden wird.

Unter Perl als Beispiel, können Sie Perl-Skripte oder Perl-Anwendungen schreiben.

Ein Skript würde eine einzelne Datei oder einen einzelnen Namespace bedeuten. (Z updateFile.pl).

Eine Anwendung etwas aus einer Sammlung von Dateien sein würde oder Namespaces / Klassen (beispielsweise eine OO-entworfen Perl-Anwendung mit vielen .pm Modul-Dateien).

Ich persönlich denke, die Trennung ist ein Schritt zurück von der tatsächlichen Umsetzung.

Nach meiner Einschätzung eine Anwendung ist geplant. Es mehrere Ziele hat, hat es eine Vielzahl von Leistungen. Es gibt Aufgaben beiseite zur Entwurfszeit im Vorfeld der Codierung festgelegt, dass die Anwendung erfüllen muss.

Ein Skript ist jedoch nur zusammen als Anzüge geworfen und wenig Planung beteiligt ist.

Der Mangel an richtigen Planung hat Sie zu einem Skript jedoch nicht degradieren. Möglicherweise macht es Ihre Anwendung eine schlecht organisierte Sammlung von schlecht geplanten Skripte.

Weiterhin kann eine Anwendung Skripte enthalten, die die gesamte umfassen aggregiert. Aber ein Skript kann nur eine Anwendung verweisen.

Eine Anwendung ist groß und wird an einen Kunden immer und immer wieder von den Leuten und vielleicht verkauft werden.

startet ein Skript aus kleinen, bleibt klein, wenn man Glück hat, selten an einen Kunden verkauft wird, und kann entweder automatisch oder fallen in Vergessenheit ausgeführt werden.

Was ist mit:

Script:

  

Skript ist eine Textdatei (oder eine Sammlung von Textdateien) von Programmanweisungen in einer Sprache geschrieben, die darin geschrieben einzelne Aussagen erlaubt sein Maschine interpretierte ausführbare Code direkt vor jede ausgeführt und mit der Absicht, dass dies geschieht .

Anwendung:

  

Ein Anwendung ist ein Computer-Programm, dessen primäre Funktionalität beinhaltet Service für einen menschlichen Schauspieler bereitstellt.

Ein Skript-Programm in einer Skriptsprache geschrieben können daher theoretisch geändert haben ihre textlichen Aussagen während des Skript (an den großen Gefahr von, natürlich) ausgeführt wird. Die analoge Situation für kompilierte Programme Bits im Speicher gespiegelt wird.

Jeder Abnehmer? :)

@ Jeffs Antwort ist gut. Meine Lieblings Erklärung ist,

  

Viele (die meisten?) Skriptsprachen interpretiert werden, und nur wenige zusammengestellt   Sprachen werden als Skriptsprachen sein, aber die Frage   nur kompilierter vs. interpretiert wird lose auf die Frage verbunden   von „Scripting“ vs. „ernst“ Sprachen.

     

Eine Menge des Problems ist hier, dass „Scripting“ ist ein ziemlich vage   Bezeichnung - es bedeutet, eine Sprache, die zum Schreiben bequemen   Skripte in, im Gegensatz „ausgewachsene Programme“ zu schreiben (oder   Anwendungen). Aber wie unterscheidet man einen komplexen Skript von einem   einfache Anwendung? Das ist eine im Wesentlichen zu beantwortende Frage.   Im Allgemeinen ist ein Skript eine Reihe von Befehlen zu einem gewissen Satz angelegt von   Daten, die möglicherweise in einer benutzerdefinierten Ordnung ... aber dann könnte man strecken   dass die Beschreibung zu Photoshop anwenden, die eindeutig ist ein wichtiger   Anwendung. Skripte sind in der Regel kleiner als Anwendungen, tun   einige gut definierte Sache und sind „einfacher“ zu verwenden, und in der Regel können   in eine klare Reihe von Teiloperationen zerlegt werden, aber alle diese   Dinge sind subjektiv.

referenzierte von hier .

Ich denke, dass es bei egal ist, ob alle Code kompiliert oder interpretiert wird.

Der wahre Unterschied liegt in der Kernlogik des Codes:

  • Wenn Code neue Funktionalität macht, die nicht in anderen Programmen in System implementiert ist - es ist ein Programm. Es kann sogar von einem Skript manipuliert werden.

  • Wenn Code manipuliert hauptsächlich durch Aktionen anderer Programme und Gesamtergebnis ist vor allem die Ergebnisse der Arbeit von manipulierten Programme - es ist ein Skript ist. Buchstäblich ein Skript von Aktionen für einige Programme.

Eigentlich ist der Unterschied zwischen einem Skript (oder einer Skriptsprache) und einer Anwendung ist, dass ein Skript es nicht erfordern, in der Maschinensprache kompiliert werden .. Sie führen die Quelle des Skripts mit einem Dolmetscher .. Eine Anwendung kompiliert die Quelle in Maschinencode, so dass Sie es als Stand-alone-Anwendung ausgeführt werden können.

Ich würde ein Skript sagen ist in der Regel einer eine Reihe von Befehlen oder im Klartext geschrieben Anweisungen , die durch eine Host-Anwendung ausgeführt (Browser, Befehlsinterpreter oder Shell ,. ..).

Es bedeutet nicht, es ist nicht ueberzeug oder nicht in irgendeiner Weise kompiliert, wenn es tatsächlich ausgeführt wird. Aber ein Skript kann sich nicht selbst etwas tun, es ist einfach nur Text.
Von Natur aus kann es ein Fragment nur sein, um kombiniert werden, um ein Programm oder eine Anwendung zu erstellen, sondern erweiterte und vollständig Skripte oder eine Reihe von Skripts entwickelt wird, kann Programme oder Anwendungen, wenn sie von dem Host, wie eine Reihe von Quelldateien ausgeführt betrachtet werden werden kann eine Anwendung einmal zusammengestellt.

Eine Skriptsprache nicht über eine Standard-Bibliothek oder eine Plattform (oder nicht viel von einem). Es ist klein und leicht, entworfen, in eine größere Anwendung eingebettet werden. Bash und Javascript sind großartige Beispiele für Skriptsprachen, weil sie unbedingt auf andere Programme auf ihre Funktionalität verlassen.

Diese Definition verwendet, ist ein Script-Code entwickelt, um eine größere Anwendung (Suite) zu fahren. Ein Javascript könnte auf Firefox aufrufen Fenster zu öffnen oder das DOM zu manipulieren. Eine Bash-Skript ausführt, bestehende Programme oder andere Skripte und verbindet sie zusammen mit Rohren.


Sie fragen auch, warum nicht Sprachen scripting, so:

Gibt es noch irgendwelche Einheit-Test-Tools für Skriptsprachen? Das scheint ein sehr wichtiges Instrument für die „echte“ Anwendungen, die völlig fehlen. Und es gibt selten eine wirkliche Bibliothek Bindings für Skriptsprachen.

Die meisten der Zeit, Skripte mit einem echten, Licht Sprache wie Python oder Ruby sowieso ersetzt werden.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top