Una cosa que siempre debe tener en cuenta: un lenguaje de programación es para el beneficio del programador, no tanto (si es que lo es) para la computadora o incluso el programa. Está ahí para facilitar la vida del programador. Y en casi todos los casos, cualquier código fuente que el programador escribió se traduce a otra cosa que la computadora realmente “entiende”. Por ejemplo, si escribe su programa en C ++, la computadora no puede hacer nada con ese archivo de texto. Primero necesita traducirlo a algo como el lenguaje de conjunto de instrucciones de la CPU, generalmente a través de un compilador. Si escribe su código en Java, incluso la JVM en sí no puede entender los archivos fuente de Java; probablemente primero deba ejecutarlos a través del compilador javac para convertirlos en archivos de clase / jar que contengan el lenguaje de código de bytes que el programa JVM puede “entender”.
Y en ese caso, realmente no importa en qué idioma fue el origen. O incluso si todo era del mismo idioma de origen. Por ejemplo, ¿se daría cuenta una persona de habla francesa cuando algún texto se traduce tanto del inglés como del alemán en un documento francés combinado? Lo mismo se aplica a dichos programas compilados que se ejecutan en una computadora. Siempre que se traduzcan en algo que la computadora (o los programas que se ejecutan en esa computadora) puedan “entender”, casi no hay diferencia en cuanto a lo que se escribió originalmente. Al menos no en el sentido de que puede ejecutarse o no no se puede ejecutar.
Por lo general, cuando se usa más de un idioma de origen, se realiza dividiendo todo el programa en varios archivos compilados. Luego, el uno solo carga y llama desde el otro (es decir, como una DLL en Windows). Aunque la única razón real para hacerlo es porque el compilador utilizado para traducir desde el lenguaje X probablemente no puede traducir también desde el lenguaje Y. Cuando encuentra un compilador que puede traducir desde múltiples idiomas de origen, muy a menudo encuentra que su resultado es un solo compilado ejecutable (incluso cuando se usan varios idiomas).
- ¿Cómo interactúan el código frontend y el backend?
- ¿Cómo es un día normal de trabajo para un ingeniero de software en Silicon Valley?
- ¿Cómo es la cultura de ingeniería en la empresa X diferente de la empresa Y? (Inserte cualquier nombre de compañía, por ejemplo, X = Google e Y = Dropbox)
- ¿Qué programador ha escrito más líneas de código?
- ¿Cuál fue tu '¡Ajá!' momento con el aprendizaje automático / ciencia de datos?
Incluso si usa un intérprete en lugar de un compilador (es decir, el archivo fuente se ejecuta directamente), el intérprete tiene acceso a los programas nativos normales en la computadora. También puede llamar a otros programas. De hecho, casi todos los intérpretes se usan de esta manera por defecto. Incluso hasta el punto en que muchos idiomas generalmente se interpretan incluyen funciones para llamar a funciones de otros programas. A veces esto se conoce como FFI (interfaz de función externa). Una muestra de esto es usar programas en C desde Python.