Capsule : Notion de script

Si l’on considère un script est une séquence d’instructions (commande) qui peut être exécutée par un ordinateur, alors un script est un programme. Mais tous les programmes ne sont pas des scripts. On convient qu’un programme est script si :

  • un programme hôte exécute ou lance l’exécution du programme,
  • l’hôte fournit au programme un environnement d’exécution (p. ex. des variables globales),
  • la fonction première de l’hôte n’est pas l’exécution de programme,
  • le programme étend les fonctionnalités ou fournit un service à l’hôte

Il est important de noter que le langage de programmation utilisé n’entre pas dans cette définition. C’est le contexte et non le langage utilisé qui permet de déterminer si un programme est ou non un script. Un même langage de programmation peut être utilisé pour réaliser aussi bien des scripts que des utilitaires ou des applications. Les quelques exemples qui suivent permettent d’illustrer ce propos.

Développement Web (serveur): Un serveur HTTP tel que httpd ou nginx peut être utilisé comme serveur d’origine (origin server) pour des ressources statiques, mais on peut également l’utiliser comme serveur d’origine pour des ressources dynamiques à condition de lui fournir un ou plusieurs programmes, écrits en PHP par exemple, pour traiter les requêtes correspondantes. Il convient de dire que ces programmes sont des scripts car :

  • Le serveur HTTP lance l’exécution de ces programmes
  • le serveur fournit les informations sur la requête au travers de variables d’environnement,
  • la fonction première du serveur HTTP est de répondre à des requêtes HTTP, pas l’exécution de programmes,
  • ces programmes étendent les fonctionnalités du serveur HTTP qui ne pourrait pas servir de ressource dynamique sans eux.

Développement Web (client) : Dans un navigateur web, les fonctionnalités de base d’un document HTML se limitent au traitement d’hyperliens, de champs de formulaire et de boutons submit. Si l’on veut davantage de fonctionnalités, il est possible de les programmer en JavaScript. Il convient de dire que ces programmes sont des scripts car :

  • Le navigateur lance l’exécution de ces programmes,
  • le navigateur fournit au script un certain nombre de variables dont window et document,
  • la fonction première du navigateur web est la consultation et l’affichage du web,
  • ces programmes étendent les fonctionnalités du navigateur.

Bureautique : Une suite bureautique a un grand nombre de fonctionnalités, mais il n’est pas possible de répondre aux besoins de tous les utilisateurs et, de fait, il en manquera toujours une. Pour pallier ce problème, les suites bureautiques supportent généralement l’ajout de fonctionnalités programmées dans un langage de programmation spécialisé ou non (Visual Basic for Application, LibreOffice Basic, etc.). Il convient de dire que ces programmes sont des scripts car :

  • La suite bureautique lance l’exécution de ces programmes,
  • la suite bureautique fournit au script une référence au document sous la forme d’une variable,
  • la fonction première d’une suite bureautique est la création de documents
  • ces programmes étendent les fonctionnalités de la suite bureautique.

Administration système : Dans le contexte de l’administration de systèmes informatiques, il est fréquent d’automatiser des tâches à l’aide de programme réalisé avec un langage de commande. L’application hôte est alors l’interface utilisateur du système d’exploitation, généralement une interface en ligne de commande ou CLI. Il convient de dire que ces programmes sont des scripts car :

  • Le CLI exécute ces programme,
  • le cli fournit notamment des variables d’environnements,
  • la fonction première d’un CLI est de permettre l’interaction homme-machine,
  • ces programmes étendent les fonctionnalités du CLI.