Pour comprendre ce qui caractérise un langage de script, il est utile de connaître les différences entre ces langages et les langages de programmation comme C, C++ et Java. Dans ces langages, le programmeur écrit un code source qui est ensuite converti en code binaire lors d’une étape séparée. Deux fichiers sont par conséquent utilisés : le fichier avec le code source, dans lequel le programmeur travaille et un fichier binaire créé à partir du premier qui est exécutable directement sur l’ordinateur. Un programme spécial appelé compilateur joue le rôle de traducteur entre les fichiers.
La conversion du code source en code binaire est appelée « compilation ». Pendant la compilation, la plausibilité du code source est contrôlée : toutes les variables utilisées ont-elles été définies ? Les types d’arguments de fonctionnalités correspondent-ils à la définition des fonctionnalités ? Le programmeur a-t-il oublié un caractère quelque part ? Ce contrôle est effectué pour l’ensemble du code source lors de la compilation et peut demander un peu de temps. Le code binaire résultant de la compilation est fortement optimisé afin de travailler rapidement et sans erreur lors de l’exécution dans la mesure du possible. Les langages compilés conviennent donc tout particulièrement aux tâches nécessitant une importante puissance de calcul et pour les systèmes plus grands.
Lors de l’exécution d’un programme codé dans un langage de script, aucune compilation n’est effectuée. Par conséquent, aucun fichier binaire n’est généré à partir du code source écrit par le programmeur. De ce fait, les programmes codés dans des langages de script sont généralement moins efficaces dans leur exécution. Cette perte d’efficacité ne constitue toutefois pas véritablement un inconvénient puisqu’il s’agit d’un choix délibéré : les langages de script déchargent le programmeur en chargeant davantage le processeur. C’est la raison pour laquelle les langages de script sont particulièrement adaptés aux programmes de taille petite à moyenne.
L’idée consistant à alléger le travail du programmeur tient lieu de fil rouge dans l’architecture de nombreux langages de script. Ces derniers renoncent donc à la gestion manuelle de la mémoire, une technologie particulièrement efficace mais propice aux erreurs. Par ailleurs, dans la plupart des langages de script, il n’est pas nécessaire d’indiquer le type de variable. Les programmes codés dans des langages de script n’étant pas compilés, il n’est pas non plus nécessaire de disposer d’une fonction main(). Les langages de script permettent d’écrire un logiciel de façon plus directe et avec moins de code source. Comparez les exemples suivants. Les deux programmes présentés fournissent le même résultat :