Per comprendere cosa contraddistingue i linguaggi di scripting, è utile conoscere gli aspetti che li differenziano dai linguaggi di programmazione convenzionali come C, C++ e Java. In questi linguaggi il programmatore scrive un codice sorgente, che viene convertito in codice binario in un passaggio separato. Si utilizzano quindi due file: il file del codice sorgente in cui lavora il programmatore e un file binario generato da questo, che può essere eseguito direttamente sul computer. Il traduttore tra i due file è un programma speciale chiamato compilatore.
La conversione del codice sorgente in codice binario prende il nome di “compilazione”. Durante la compilazione, il codice sorgente viene controllato per verificarne l’attendibilità: tutte le variabili utilizzate sono effettivamente definite? I tipi di argomenti delle funzioni corrispondono alle definizioni delle funzioni? Il programmatore ha dimenticato un carattere da qualche parte? Questo controllo è effettuato in ogni compilazione per tutto il codice sorgente e può richiedere un certo tempo. Il codice binario risultato della compilazione è altamente ottimizzato, per funzionare durante l’esecuzione il più correttamente e velocemente possibile. I linguaggi compilati sono quindi particolarmente adatti per attività a elevata intensità di calcolo e per sistemi più complessi.
Quando si esegue un programma scritto in un linguaggio di scripting, non c’è nessuna compilazione. Pertanto non viene generato nessun file binario dal codice sorgente scritto dal programmatore. Di conseguenza, i programmi scritti in linguaggi di scripting sono di solito meno efficienti nell’esecuzione. Tuttavia, questa perdita di efficienza non è del tutto uno svantaggio ma piuttosto un modo di lavorare con un giusto compromesso: i linguaggi di scripting alleggeriscono il lavoro del programmatore aumentando il carico del processore. I linguaggi di scripting sono quindi particolarmente adatti per programmi di piccole e medie dimensioni.
L’idea di facilitare il lavoro del programmatore è un filo conduttore che caratterizza l’architettura di molti linguaggi di scripting. Questi non prevedono la gestione manuale della memoria, una tecnica particolarmente efficiente ma soggetta a errori. Inoltre, nella maggior parte dei linguaggi di scripting non è necessario specificare il tipo di variabile. Poiché i programmi scritti in linguaggi di scripting non vengono compilati, non c’è bisogno di una funzione main(). I linguaggi di scripting permettono di scrivere il software in modo più diretto e con meno codice sorgente. Confrontate gli esempi seguenti. Entrambi i programmi riportati restituiscono lo stesso risultato: