Inconvénients et avantages des compilateurs
Les ordinateurs lisent les commandes d'un langage machine écrit en binaire, c'est-à-dire de longues chaînes de zéros et de uns. Alors que les ordinateurs peuvent lire ce langage efficacement, la plupart des programmeurs humains ne le peuvent pas. C'est pourquoi les programmeurs travaillent dans un langage de programmation qu'ils peuvent comprendre, qu'ils traduisent ensuite dans le langage machine que l'ordinateur peut comprendre. Alors que de nombreux langages plus récents utilisent des interpréteurs qui traduisent de l'un à l'autre pendant l'exécution du programme, les langages de programmation plus anciens utilisaient des compilateurs qui effectuaient entièrement cette traduction avant que l'ordinateur n'exécute le programme.
Avantage :autonome et efficace
L'un des principaux avantages des programmes compilés est qu'il s'agit d'unités autonomes prêtes à être exécutées. Parce qu'ils sont déjà compilés dans des binaires en langage machine, il n'y a pas de deuxième application ou package que l'utilisateur doit maintenir à jour. Si un programme est compilé pour Windows sur une architecture x86, l'utilisateur final n'a besoin que d'un système d'exploitation Windows fonctionnant sur une architecture x86. De plus, un package précompilé peut s'exécuter plus rapidement qu'un interpréteur compilant le code source en temps réel.
Inconvénient :spécifique au matériel
Étant donné qu'un compilateur traduit le code source dans un langage machine spécifique, les programmes doivent être spécifiquement compilés pour OS X, Windows ou Linux, ainsi que spécifiquement pour les architectures 32 bits ou 64 bits. Pour un programmeur ou un éditeur de logiciels essayant de diffuser un produit au public le plus large possible, cela signifie conserver plusieurs versions du code source pour la même application. Cela se traduit par plus de temps consacré à la maintenance du code source et des problèmes supplémentaires lors de la publication des mises à jour.
Avantage :Optimisation matérielle
Bien que le fait d'être enfermé dans un package matériel spécifique ait ses inconvénients, la compilation d'un programme peut également augmenter ses performances. Les utilisateurs peuvent envoyer des options spécifiques aux compilateurs concernant les détails du matériel sur lequel le programme sera exécuté. Cela permet au compilateur de créer un code en langage machine qui utilise le matériel spécifié de la manière la plus efficace, par opposition à un code plus générique. Cela permet également aux utilisateurs avancés d'optimiser les performances d'un programme sur leur ordinateur.
Inconvénient :temps de compilation
L'un des inconvénients d'avoir un compilateur est qu'il doit en fait compiler le code source. Alors que les petits programmes codés par de nombreux programmeurs novices prennent un temps insignifiant à compiler, les suites d'applications plus volumineuses peuvent prendre beaucoup de temps à compiler. Lorsque les programmeurs n'ont rien d'autre à faire qu'attendre la fin du compilateur, ce temps peut s'accumuler, en particulier pendant la phase de développement, lorsque le code doit être compilé afin de tester les fonctionnalités et de résoudre les problèmes.