Desventajas y ventajas de los compiladores

Las computadoras leen comandos de un lenguaje de máquina escrito en binario, es decir, largas cadenas de ceros y unos. Si bien las computadoras pueden leer este lenguaje de manera eficiente, la mayoría de los programadores humanos no pueden hacerlo. Es por eso que los programadores trabajan en un lenguaje de programación que pueden entender, que luego traducen al lenguaje de máquina que la computadora puede entender. Mientras que muchos lenguajes más nuevos usan intérpretes que traducen de uno a otro a medida que se ejecuta el programa, los lenguajes de programación más antiguos usaban compiladores que hacían esta traducción por completo antes de que la computadora ejecutara el programa.

Ventaja:autónomo y eficiente

Una de las principales ventajas de los programas que se compilan es que son unidades autónomas que están listas para ejecutarse. Debido a que ya están compilados en binarios de lenguaje de máquina, no hay una segunda aplicación o paquete que el usuario deba mantener actualizado. Si un programa se compila para Windows en una arquitectura x86, el usuario final solo necesita un sistema operativo Windows que se ejecute en una arquitectura x86. Además, un paquete precompilado puede ejecutarse más rápido que un intérprete que compila el código fuente en tiempo real.

Desventaja:Específico del hardware

Debido a que un compilador traduce el código fuente a un lenguaje de máquina específico, los programas deben compilarse específicamente para OS X, Windows o Linux, así como específicamente para arquitecturas de 32 o 64 bits. Para un programador o una empresa de software que intenta llevar un producto a la audiencia más amplia posible, esto significa mantener varias versiones del código fuente para la misma aplicación. Esto da como resultado más tiempo dedicado al mantenimiento del código fuente y problemas adicionales cuando se lanzan las actualizaciones.

Ventaja:optimización de hardware

Si bien estar encerrado en un paquete de hardware específico tiene sus desventajas, compilar un programa también puede aumentar su rendimiento. Los usuarios pueden enviar opciones específicas a los compiladores con respecto a los detalles del hardware en el que se ejecutará el programa. Esto permite que el compilador cree un código de lenguaje de máquina que haga el uso más eficiente del hardware especificado, a diferencia del código más genérico. Esto también permite a los usuarios avanzados optimizar el rendimiento de un programa en sus computadoras.

Desventaja:tiempos de compilación

Uno de los inconvenientes de tener un compilador es que en realidad debe compilar el código fuente. Mientras que los programas pequeños que codifican muchos programadores novatos requieren cantidades triviales de tiempo para compilar, las suites de aplicaciones más grandes pueden tomar cantidades significativas de tiempo para compilar. Cuando los programadores no tienen nada que hacer más que esperar a que finalice el compilador, este tiempo puede acumularse, especialmente durante la etapa de desarrollo, cuando el código debe compilarse para probar la funcionalidad y solucionar fallas.