Para comprender qué caracteriza a los lenguajes de scripting, resulta de gran ayuda conocer sus diferencias respecto a los lenguajes de programación convencionales,como C, C++ y Java. En estos lenguajes, el programador escribe un texto fuente que, en un paso posterior, se convierte en código binario. Se utilizan, por tanto, dos archivos: el archivo del texto fuente —en el que el programador trabaja— y un archivo binario que se genera a partir de él y que se ejecuta directamente en el ordenador. Como traductor entre los dos archivos se utiliza un programa especial, el denominado compilador.
La transformación del texto fuente en código binario se denomina compilación. Durante la compilación, se comprueba la plausibilidad del texto fuente: ¿Están todas las variables utilizadas realmente definidas? ¿Se adecúan los tipos de argumentos de función a las definiciones de función? ¿Ha olvidado el programador algún carácter? Esta comprobación se lleva a cabo con cada una de las compilaciones para el texto al completo y puede necesitar tiempo. El código binario resultante de la compilación está muy optimizado para trabajar muy rápido y con el menor número de errores posibles durante la ejecución. Los lenguajes compilados son, por lo tanto, particularmente útiles para tareas de alta intensidad de procesamiento y sistemas de mayor magnitud.
La ejecución de un programa escrito en lenguaje de scripting, en cambio, no conlleva compilación, es decir, no se genera ningún archivo binario a partir del texto fuente escrito por el programador. Como consecuencia, los programas escritos en lenguajes de scripting son generalmente menos eficientes en la ejecución. Sin embargo, esta merma en la eficiencia no es puramente una desventaja, sino una elección consciente: los lenguajes de scriptingreducen la carga para el programador y aumentan la que recae en el procesador. Los lenguajes de scripting son especialmente adecuados para programas pequeños y medianos.
La idea de facilitar el trabajo del programador es el hilo conductor de la arquitectura de muchos lenguajes de scripting. De esta forma, se evita la gestión de almacenamiento manual, un método particularmente eficiente, pero propenso a errores. Además, en la mayoría de lenguajes de scripting no es necesario indicar el tipo de la variable y, puesto que estos programas no se compilan, tampoco hay necesidad de una función main. Con los lenguajes de scripting se puede programar software de manera más directa y con menos texto fuente. Si se comparan los siguientes ejemplos, se ve que ambos programas ofrecen el mismo resultado: