Scripting or not scripting ?


Un script est un ensemble de fonctions interprété par un langage de programmation qui lui est propre. Comparé aux développements de programmes qui eux sont compilables et donnent en final un ensemble de binaires figés.

Interprétable / Compilable ?
Un langage de programmation est un ensemble de règles qui permettent d’écrire des programmes sous une forme de code source qui pourra être transformé en suite d’instructions machine par un programme (compilateur, assembleur ou interprète).
La programmation consiste à créer des programmes, en parcourant le chemin qui va d’une idée, souvent vague, jusqu’à une suite d’instructions précises exécutées par une machine. Les langages de programmation ont été créés dans l’optique de faciliter le travail du programmeur en raccourcissant le chemin qui va de l’idée au code source.

Le code source (ou les sources voire le source) est un ensemble d’instructions écrites dans un langage de programmation informatique de haut niveau, compréhensible par un être humain entraîné, permettant d’obtenir un programme pour un ordinateur.
Les systèmes d’exploitation ne peuvent pas directement exploiter le code source ; ils ne peuvent que lancer des exécutables. Le code source doit donc être :

  • Transformé en code compréhensible par la machine par l’opération de compilation ;
  • Transformé en code compréhensible par une machine virtuelle, donc compilé aussi
  • Ou être exécuté tel quel par un interpréteur.

Quelle est la différence ? Un binaire dit compilé, est en faite codage remplit de fonctions, variables, procédure, et autres, va être directement interprété, compilé et linké en langage binaire ou assembleur.
Le langage le plus proche de l’ordinateur, soit les fameux 0 et 1.
A la différence des codes sources compilés, les scripts sont
interprétés. En clair, il obligatoire que le script réalisé soit présent avec le programme qui est apte à comprendre le langage utilisé pour s’exécuter. Il est dont impératif d’installer ce(s) langages de scripts avant tout usage de ces scripts, sans quoi il ne fonctionneront pas.

Le langage de script est un langage de programmation qui permet de manipuler les fonctionnalités d’un système informatique, configuré pour fournir à l’interpréteur de ce langage, un environnement et une interface qui déterminent les possibilités de celui-ci.
Le langage de script est généralement exécuté à partir de fichiers contenant le code source du programme qui sera interprété. Historiquement ils ont été créés pour raccourcir le processus traditionnel de développement édition-compilation-
édition des liens-exécution propre aux langages compilés.
Les premiers langages étaient souvent appelés
langage de commande ou langage d’enchaînement des travaux (JCL : Job Control Language), car ils permettaient simplement d’automatiser une succession de commandes simples, à la manière d’un « script » de théâtre.
Certains langages scripts permettent de réaliser un programme binaire embarquant l’
interpréteur, ses librairies logicielles et le codage script en question. De ce fait, ce script devient portable sans besoin d’installer tout le langage. Bien évidemment, ces scripts deviennent un légèrement lourds que des vrais programmes compilés, mais très intéressants en terme de développements rapides.

Dans le sens le plus traditionnel, qui est celui des shell scripts, un script sert principalement à lancer et coordonner l’exécution de programmes.
Dans sa version la plus simple, un script ne spécifie qu’une suite de programmes à appeler dans un ordre donné (par exemple éditeur de texte, compilateur, éditeur de liens et exécution du code objet). Cela crée rapidement des inefficiences : à quoi bon en effet tenter de charger et d’exécuter un programme dont la compilation a échoué ?

  • On y ajoute donc assez vite une possibilité d’exécution conditionnelle simple (||, &&) en fonction du résultat de l’étape immédiatement précédente (il ne sert à rien d’exécuter si la compilation est mauvaise).
  • La possibilité d’y employer des variables, des paramètres, des structures de contrôle (répétition, exécution conditionnelle), etc. fait des langages de scripts de véritables langages de programmation.
  • On peu construire des interfaces graphiques permettant des interactions; Voir effectuer le contrôle d’autres pour des installations automatisés par exemple.

Voici quelques listes de languages scripts et leur options d’embarquement de l’interpréteur, ainsi que leur environnement logiciels.

php : multi-os, modulable, interpretable via ligne de commande et serveur web.
perl : multi-os, modulable, interpretable via ligne de commande et serveur web, binarisation possible.
AutoIt : Windows, modulable, interpretable via ligne de commande et serveur web, binarisation possible.
KixStart: Windows, modulable, interpretable via ligne de commande.
Python : multi-os, modulable, interpretable via ligne de commande et serveur web,
binarisation possible.
Vbs/Wsh : Windows, interpretable via ligne de commande.
Ruby : multi-os, modulable, interpretable via ligne de commande et serveur web,
binarisation possible.
ReBol : multi-os, modulable. PowerShell : Windows, modulable, interpretable via ligne de commande.
AppleScript : modulable. interpretable, compilable. Spécifique au monde Mac OS 10.
Et les Awk, Korn, Bash, CmdDos, etc …
Bien évidemment la liste n’est pas exaustive.

Retrouvez toutes les sources et binaire de scripts par langages :

Les scripts AutoIt d’HiddenSoftware:

A noter : L’ensemble des binaires téléchargeable sont garanties sans virus connu. Attention certains antivirus comme AVP peuvent-être sensible à ces binaires. Choses assez normales, puisqu’au lieu de détecter un vrai troyen, ces antivirus détectent dans le binaire, l’interpréteur embarqué ! CQFD !

La ma série « Auto… », voici des scripts pour faciliter l’industrialisation de vos environnements de production.

AutoControlServices
AutoSendEvents
AutoConnect
AutoClean

AutoDefrag
Pwd-Gen
TestMail
ExecTempo

Les scripts PHP:

en cours

Les scripts Perl:

en cours

Les scripts VB:

WinAutoConnect