Vamos a darte un ejemplo del mundo real.
Hace unos 15 años trabajé en portar un gran sistema escrito en C desde Unix a Windows, tenía aproximadamente 3 millones de líneas de código. Para darle una idea de la escala, se tardó más de 24 horas en compilar en algunos de nuestros sistemas Unix (RS6000), Windows podría compilar el sistema en aproximadamente 4 horas.
(También teníamos 2 millones de líneas de código en nuestro propio lenguaje interpretado, pero decidimos no usar nuestro lenguaje para los sistemas de compilación, ya que nunca fue diseñado para el procesamiento de archivos. También necesitábamos un sistema de compilación para compilar el código C que implementaba nuestro lenguaje .)
En el momento en que el sistema de compilación se escribió en una combinación de scripts de shell y archivos de creación, estos no eran portátiles para Windows, por lo tanto, decidimos escribir nuestro propio sistema de compilación.
Podríamos haber usado C, sin embargo, decidimos usar Python, había pocas razones. (También reescribimos nuestro sistema de control de código fuente en Python al mismo tiempo, esto está muy integrado con el sistema de compilación, por lo que los desarrolladores pueden compartir los archivos de objetos para los módulos registrados).
La mayor parte de nuestro código podría construirse con unas pocas reglas simples (solo unos pocos miles de líneas de python para todas las plataformas, Windows, VMS y 6 versiones de Unix) que se derivaron de las convenciones de nomenclatura de los archivos.
En ese momento, RegEx no era muy estándar entre los sistemas C en diferentes plataformas, Python había incorporado RegEx.
Algunos módulos necesitaban pasos de compilación personalizados, Python permitió que los archivos de clase se cargaran dinámicamente. Permitimos que se usara una clase personalizada para construir un módulo (lib), basado en tener el archivo python con un nombre mágico en la carpeta. Esta fue la razón asesina para usar Python.
Consideramos Java, pero en ese momento no se distribuía en todas las plataformas.
(La interfaz de usuario de nuestro sistema de control de código fuente utilizaba un navegador web, ya que era portátil en toda la plataforma. Esto fue 6 meses antes de tener una conexión a Internet. ¡Tuvimos que descargar el navegador a través de X25!)