Para ampliar la respuesta de Vipin Saxena:
Los programas están escritos en texto legible para humanos. Los lenguajes de programación suelen ser lenguajes de secuencias de comandos o lenguajes compilados.
En un lenguaje compilado, un compilador toma su texto legible por humanos y lo convierte en binarios y ceros que son directamente utilizados por la CPU de su computadora (o su computadora de destino). El programa compilado se conoce como “el binario”. El binario no es legible por humanos.
- ¿Necesitamos tarjetas gráficas dedicadas para Android y desarrollo web o son suficientes los gráficos Intel HD?
- ¿Cuál es la forma más inteligente de desarrollar habilidades de codificación en varios idiomas?
- ¿Cuál es el mejor editor / IDE para PHP?
- ¿Puedes instalar un blog de WordPress en tu sitio web que esté codificado en HTML, CSS, PHP y Java sin convertirlo en un tema?
- ¿Por qué la gente usa clearfix en lugar de display: inline-block y width: 100% en CSS?
En un lenguaje de secuencia de comandos, un intérprete toma el texto legible por humanos y recorre las líneas de texto, una por una, y las ejecuta. El código no se convierte en binario, el intérprete es binario y solo está leyendo y ejecutando su script.
Un compilador tarda un tiempo en convertir su programa en binario y, al hacerlo, intenta optimizar las cosas para que el programa se ejecute lo más rápido posible con la menor cantidad de recursos posible. Toda la optimización ocurre antes de que se ejecute su programa.
Un intérprete generalmente no puede optimizar su código, por lo que los scripts tienden a ejecutarse más lentamente que los programas compilados.
Hay algunos idiomas que ejecutarán un script y también lo compilarán.
Por ejemplo, los scripts de Python tienen un tipo de archivo de “.py”. La versión compilada de un script de Python tendrá el tipo de archivo “.pyc” o “.pyo”. Si no ha cambiado el avance lento en el archivo .py, solo ejecutará la versión compilada y se ejecutará mucho más rápido que el script .py.
La ventaja de un lenguaje de secuencias de comandos es que puede recorrer fácilmente su código para depurarlo. Con cada línea de un script, puede ver cuáles son los contenidos variables y puede ver cómo el programa salta dentro de su código. Puede recorrer su código con un lenguaje compilado, es un poco más complicado.
Su script debe ejecutarse en cualquier computadora que tenga un intérprete para ese idioma. Un binario compilado solo se ejecutará en la computadora / CPU para la que fue compilado.
Con un script, cualquiera que quiera saber cómo funciona su código puede leer el script, por lo que su propiedad intelectual no está protegida.
Con una aplicación compilada, es difícil (no imposible) “descompilar” el binario y volver a convertirlo en un código legible donde alguien pueda descubrir lo que está haciendo y luego hacer lo mismo en su programa.
Swift es un buen híbrido donde normalmente es un lenguaje compilado, pero puede ejecutar el código Swift en el “Playground”, que es un intérprete. Aprenda como si fuera un script, compile cuando se ejecute de la manera que desee.