Un langage compilé est plus efficace : la compilation a lieu une fois et peut optimiser le code généré qui s'exécute en code natif.
Un langage interprété est plus flexible: les programmes peuvent modifier leur environnement et (eux-mêmes) à la volée.
Exemple: L'interpréteur Java gère l'allocation de mémoire (flexibilité), la compilation en langage intermédiaire permet d'avoir des performances acceptables.