Vamos dar um exemplo do mundo real.
Cerca de 15 anos atrás, eu trabalhei na portabilidade de um grande sistema escrito em C do Unix para o Windows, eram cerca de 3 milhões de linhas de código. Para você ter uma idéia da escala, demorou 24 horas para compilar em alguns de nossos sistemas unix (RS6000), o Windows pode compilar o sistema em cerca de 4 horas.
(Também tínhamos 2 milhões de linhas de código em nossa própria linguagem interpretada, mas decidimos não usar nossa linguagem para os sistemas de compilação, pois ela nunca foi projetada para processamento de arquivos. Também precisamos de um sistema de compilação para compilar o código C que implementou nossa linguagem. .)
No momento em que o sistema de compilação foi gravado em uma mistura de scripts de shell e arquivos de criação, eles não eram portáveis para o Windows - portanto, decidimos escrever nosso próprio sistema de compilação.
Poderíamos ter usado C, no entanto, decidimos usar python, havia poucas razões. (Também reescrevemos nosso sistema de controle de código-fonte em python ao mesmo tempo, isso foi muito atualizado com o sistema de compilação, para que os arquivos de objetos dos módulos registrados possam ser compartilhados pelos desenvolvedores.)
A maior parte do nosso código pode ser construída com algumas regras simples (apenas alguns milhares de linhas de python para todas as plataformas, Windows, VMS e 6 versões do Unix) que foram derivadas das convenções de nomenclatura dos arquivos.
Na época, o RegEx não era muito padrão entre os sistemas C em plataformas diferentes, o Python havia incorporado o RegEx.
Alguns módulos precisavam de etapas de construção personalizadas, o Python permitiu que os arquivos de classe fossem carregados dinamicamente. Permitimos que uma classe personalizada fosse usada para criar um módulo (lib), com base no arquivo python com um nome mágico na pasta. Essa foi a razão mais importante para usar o python.
Consideramos o Java, mas não estava sendo distribuído em todas as plataformas naquele momento.
(A interface do usuário do nosso sistema de controle de código-fonte usava um navegador da Web portátil em toda a plataforma. Isso ocorreu seis meses antes de termos uma conexão com a Internet. Tivemos que fazer o download do navegador pelo X25!)