Question

Je fais référence à des distinctions telles que cette réponse :

  

... bash n'est pas pour écrire des applications, c'est pour, bien, écrire des scripts. Donc, bien sûr, votre application peut avoir des scripts de maintenance mais n'écrivez pas critical-business-logic.sh car une autre langue est probablement préférable pour des choses comme ça.

En tant que programmeur ayant travaillé dans de nombreuses langues, cela semble être du snobisme en langage C, Java et autres langages compilés. Je ne cherche pas à renforcer mon opinion ni à obtenir des réponses vagues. Je souhaite vraiment savoir à quelles différences techniques il est fait référence.

(Et j'utilise C dans mon travail quotidien, donc je ne suis pas seulement sur la défensive.)

Était-ce utile?

La solution

Traditionnellement, un programme est compilé et un script interprété, mais ce n’est plus vraiment important. Vous pouvez générer une version compilée de la plupart des scripts si vous le souhaitez vraiment, et d'autres langages "compilés" comme Java sont en fait interprétés (au niveau du code en octets).

Une définition plus moderne pourrait être qu'un programme est destiné à être utilisé par un client (peut-être interne) et doit donc inclure la documentation et le support, alors qu'un script est principalement destiné à l'usage de l'auteur.

Le Web est un contre-exemple intéressant. Nous aimons tous regarder avec le moteur de recherche Google. La majeure partie du code qui entre dans la création de la «base de données» à laquelle elle fait référence est utilisée uniquement par ses auteurs et ses responsables. Est-ce que cela en fait un script?

Autres conseils

Je dirais qu'une application a tendance à être utilisée de manière interactive, dans laquelle un script suivrait son cours, adapté au travail par lots. Je ne pense pas que ce soit une distinction concrète.

En règle générale, il s'agit du "script". par rapport à "programme".

Je suis avec vous pour dire que cette distinction est principalement "du snobisme linguistique", ou pour citer Larry Wall et prendre l'autre côté de la barrière, "un script est ce que les acteurs ont, un programme est donné au public" ;.

C’est un sujet intéressant et je ne pense pas qu’il existe de très bonnes directives pour différencier un "script". et une "application".

Jetons un coup d'oeil à quelques articles de Wikipedia pour avoir une idée de la distinction.

Script (Wikipedia - > Langage de script):

  

Un langage de script, langage de script ou langage d'extension, est un langage de programmation qui contrôle une application logicielle. "Scripts" sont souvent considérés comme distincts des "programmes", qui s'exécutent indépendamment de toute autre application. En même temps, ils sont distincts du code principal de l'application, qui est généralement écrit dans une langue différente, et, en étant accessibles à l'utilisateur final, ils permettent d'adapter le comportement de l'application aux besoins de l'utilisateur.

Application (Wikipedia - > Logiciel d'application - > Terminologie)

  

En informatique, une application est un programme informatique conçu pour aider les personnes à effectuer un certain type de travail. Une application diffère donc d'un système d'exploitation (qui exécute un ordinateur), d'un utilitaire (qui effectue des tâches de maintenance ou d'usage général) et d'un langage de programmation (avec lequel les programmes informatiques sont créés). En fonction du travail pour lequel elle a été conçue, une application peut manipuler du texte, des nombres, des graphiques ou une combinaison de ces éléments.

La lecture des entrées ci-dessus semble suggérer que la distinction est qu'un script est "hébergé". par un autre logiciel, alors qu’une application ne l’est pas. Je suppose que cela peut être discuté, comme des scripts shell contrôlant le comportement du shell et des scripts perl contrôlant le comportement de l'interpréteur pour effectuer les opérations souhaitées. (Je pense que cela peut être un peu exagéré, donc je ne suis peut-être pas tout à fait d'accord avec ça.)

Au fond, c’est à mon avis que la distinction familière peut être faite en termes de échelle du programme. Les scripts sont généralement moins volumineux que les applications.

En outre, en termes d'objectif, un script effectue généralement des tâches qui doivent être prises en charge, par exemple, pour créer des scripts produisant plusieurs versions de version pour un logiciel donné. D'autre part, les applications sont orientées vers fournissant une fonctionnalité qui est plus raffinée et orientée vers un utilisateur final. Par exemple, Bloc-notes ou Firefox.

John Ousterhout (l'inventeur de TCL) a publié un bon article à l'adresse http: // www. tcl.tk/doc/scripting.html où il propose une distinction entre les langages de programmation système (pour la mise en oeuvre de blocs de construction, l'accent mis sur la correction, la sécurité de type) et les langages de script (pour la combinaison de blocs de construction, l'accent mis sur la réactivité aux environnements changeants et exigences, conversion facile dans et hors des représentations textuelles). Si vous utilisez ce système de catégorisation, alors 99% des programmeurs effectuent des tâches plus appropriées aux langages de script qu'aux langages de programmation système.

Un script a tendance à être une série de commandes qui démarrent, s'exécutent et se terminent. Cela nécessite souvent peu ou pas d'interaction humaine. Une application est un "programme" ... elle nécessite souvent une interaction humaine, elle a tendance à être plus volumineuse.

Le script pour moi implique une interprétation ligne par ligne du code. Vous pouvez ouvrir un script et afficher son contenu lisible par le programmeur. Une application implique un exécutable compilé autonome.

C’est souvent un simple argument sémantique, voire un moyen de dénigrer certains langages de programmation. En ce qui me concerne, un & script; script " est un type de programme, et la définition exacte est quelque peu vague et varie avec le contexte.

Je pourrais utiliser le terme "script". pour signifier un programme qui s'exécute principalement de manière linéaire, plutôt qu'avec beaucoup de logique séquentielle ou de sous-routines, un peu comme un "script". à Hollywood, une séquence d'instructions linéaires à exécuter par un acteur. Je pourrais utiliser ce terme pour désigner un programme écrit dans un langage intégré à un programme plus vaste, dans le but de piloter ce programme. Par exemple, automatiser des tâches sous l’ancien Mac OS avec AppleScript ou piloter un programme qui s’expose d’une manière ou d’une autre avec une interface TCL intégrée.

Mais dans tous ces cas, un script est un type de programme.

Le terme "langage de script" " a été utilisé pour les langages interprétés dynamiquement (parfois compilés), qui ont généralement de nombreuses fonctionnalités communes telles que des instructions de très haut niveau, des hachages construits et des listes de longueur arbitraire et d'autres structures de données de haut niveau, etc. Mais ces langages sont capables de programmes très volumineux, compliqués, modulaires et bien conçus, donc si vous pensez à un "script" comme quelque chose d'autre qu'un programme, ce terme pourrait vous confondre.

Voir aussi S'agit-il d'un programme Perl ou d'un script Perl? in perlfaq1.

Un script s'exécute généralement dans le cadre d'une application plus grande au sein d'un moteur de script. par exemple. JavaScript - > Navigateur Cela contraste à la fois avec les langages classiques compilés à typage statique et les langages dynamiques, où le code est destiné à constituer la partie principale de l’application.

Une application est un ensemble de scripts conçus pour résoudre un ensemble de problèmes courants.

Un script est un morceau de code permettant d’exécuter une tâche assez spécifique.

IMO, la différence n’a absolument rien à voir avec le langage utilisé. Il est possible d'écrire une application complexe avec bash, et un script simple avec C ++.

Tout d'abord, je tiens à préciser que un script est un programme . En d'autres termes, un script est un ensemble d'instructions.

Programme:

Un ensemble d'instructions à compiler s'appelle un programme.

Script:

Un ensemble d'instructions à interpréter s'appelle un script.

En prenant Perl à titre d'exemple, vous pouvez écrire des scripts Perl ou des applications Perl.

Un script impliquerait un seul fichier ou un seul espace de nom. (par exemple, updateFile.pl).

Une application est un ensemble de fichiers ou d'espaces de nom / classes (par exemple, une application Perl conçue par OO avec de nombreux fichiers de module .pm).

Personnellement, je pense que la séparation est un pas en arrière par rapport à la mise en œuvre réelle.

À mon avis, une application est prévue. Il a de multiples objectifs, plusieurs livrables. Des tâches sont réservées au moment de la conception avant le codage que l'application doit remplir.

Cependant, un script est jeté comme une combinaison, et peu de planification est nécessaire.

Le manque de planification appropriée ne vous rétrograde toutefois pas dans un script. Il est possible que votre application soit un ensemble mal organisé de scripts mal planifiés.

De plus, une application peut contenir des scripts agrégés. Mais un script ne peut faire référence qu'à une application.

Une application est volumineuse et sera utilisée par de nombreuses personnes, voire vendue à un client.

Un script commence petit, reste petit si vous avez de la chance, est rarement vendu à un client et peut être exécuté automatiquement ou tomber en désuétude.

Qu'en est-il de:

Script:

  

Un script est un fichier texte (ou un ensemble de fichiers texte) d'instructions de programmation écrites dans un langage qui permet à des instructions individuelles qui y sont écrites d'être interprétées dans un code exécutable . directement avant , chacune d'entre elles est exécutée et avec l'intention que cela se produise .

Application:

  

Une application est un programme informatique dont la fonctionnalité principale consiste à fournir des services à un acteur humain.

Un programme basé sur un script écrit dans un langage de script peut donc, théoriquement, avoir ses déclarations textuelles modifiées pendant l’exécution du script (au risque, bien sûr, de le perdre). La situation analogue pour les programmes compilés est le retournement de bits en mémoire.

Des preneurs? :)

@ La réponse de Jeff est bonne. Mon explication préférée est

  

Beaucoup (la plupart?) de langages de script sont interprétés et peu compilés   les langues sont considérées comme des langages de script, mais la question   de compilé vs interprété est seulement vaguement liée à la question   de " scripting " vs "grave" langues.

     

Le problème ici est que "script" " est assez vague   désignation - cela signifie une langue qui convient à l'écriture   des scripts dans, par opposition à l'écriture de "programmes complets" (ou   applications). Mais comment distingue-t-on un script complexe d'un   application simple? C'est une question essentiellement sans réponse.   Généralement, un script est une série de commandes appliquées à un ensemble de   données, éventuellement dans un ordre défini par l'utilisateur ... mais alors, on pourrait s'étirer   cette description à appliquer à Photoshop, qui est clairement un important   application. Les scripts sont généralement plus petits que les applications,   certaines choses bien définies et sont "plus simples" à utiliser, et peut généralement   être décomposé en une série claire de sous-opérations, mais tous ces   les choses sont subjectives.

Référencé à partir de ici .

Je pense qu'il est indifférent que le code soit compilé ou interprété.

La vraie différence réside dans la logique de base du code:

  • Si le code crée une nouvelle fonctionnalité qui n'est pas implémentée dans les autres programmes du système, c'est un programme. Il peut même être manipulé par un script.

  • Si le code est principalement manipulé par les actions d'autres programmes et que le résultat total est principalement les résultats du travail des programmes manipulés - c'est un script. Littéralement un script d'actions pour certains programmes.

En réalité, la différence entre un script (ou un langage de script) et une application est qu'un script ne nécessite pas sa compilation en langage machine .. Vous exécutez la source du script avec un interpréteur .. Une application compile la source en code machine afin que vous puissiez l'exécuter en tant qu'application autonome.

Je dirais qu'un script est généralement un ensemble de commandes ou d'instructions écrites en texte brut qui sont exécutées par une application d'hébergement (navigateur, interpréteur de commandes ou shell ,.). ..).

Cela ne signifie pas qu’il n’est pas puissant ou pas compilé d’une manière ou d’une autre quand il est réellement exécuté. Mais un script ne peut rien faire par lui-même, c'est juste du texte brut.
Par nature, il peut s'agir d'un fragment seulement, qui doit être combiné pour créer un programme ou une application, mais des scripts ou un ensemble de scripts étendus et entièrement développés peuvent être considérés comme des programmes ou des applications exécutés par l'hôte, tout comme un ensemble de fichiers source. peut devenir une application une fois compilée.

Un langage de script ne possède pas de bibliothèque ou de plate-forme standard (ou presque). C'est petit et léger, conçu pour être intégré dans une application plus grande. Bash et Javascript sont d’excellents exemples de langages de script car ils reposent absolument sur d’autres programmes pour leurs fonctionnalités.

En utilisant cette définition, un script est un code conçu pour piloter une application plus grande (suite). Un Javascript peut appeler Firefox pour ouvrir des fenêtres ou manipuler le DOM. Un script Bash exécute des programmes existants ou d’autres scripts et les connecte avec des canaux.

Vous demandez également pourquoi pas les langages de script, alors:

Existe-t-il même des outils de tests unitaires pour les langages de script? Cela semble être un outil très important pour " real " applications qui manque complètement. Et il existe rarement de véritables liaisons de bibliothèque pour les langages de script.

La plupart du temps, les scripts pourraient être remplacés par un langage réel et léger comme Python ou Ruby.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top