Vou expandir meu comentário.
Eu acho que existem alguns fatores que influenciaram o uso do Python na computação científica, embora eu não ache que haja pontos históricos definitivos nos quais você possa dizer: "Sim, essa é a razão pela qual o Python é usado sobre Ruby / qualquer outra coisa "
História antiga
Python e Ruby têm aproximadamente a mesma idade - de acordo com a Wikipedia, o Python foi oficialmente lançado pela primeira vez em 1991 e o Ruby em 1995.
No entanto, o Python ganhou destaque mais cedo do que o Ruby, pois o Google já estava usando o Python e procurando desenvolvedores de Python na virada do milênio. Como não é como se tivéssemos uma história com curadoria de usos de linguagens de programação e suas influências nas pessoas que as usam, teorizarei que essa adoção precoce do Python pelo Google foi um grande motivador para as pessoas que procuram expandir além do uso de Matlab, C ++, Fortran, Stata, Mathematica, etc.
Ou seja, quero dizer que o Google estava usando Python em um sistema onde eles tinham milhares de máquinas (pense em paralelismo e escala) e constantemente processava muitos milhões de pontos de dados (novamente, escala).
Confluência do evento
A computação científica costumava ser feita em máquinas especializadas como SGIs e Crays (lembra-se deles?), E é claro que o FORTRAN era (e ainda é) amplamente utilizado devido à sua relativa simplicidade e porque poderia ser otimizado mais facilmente.
Na última década, mais ou menos, o hardware comum (significando coisas que você ou eu podemos pagar sem ser milionários) assumiu o domínio científico e de computação em massa. Veja os 500 principais rankings atuais - muitos dos 'supercomputadores' melhores do mundo são construídos com hardware Intel / AMD normal.
O Python entrou em um bom momento, pois, novamente, o Google estava promovendo o Python, e o Google estava usando hardware comum, e eles tinham milhares de máquinas.
Além disso, se você pesquisar alguns artigos científicos antigos sobre computação, eles começaram a surgir por volta da era 2000.
Suporte anterior
Aqui está um artigo escrito para o Software e Sistemas de Análise de Dados Astronômicos , escrito em 2000, sugerindo o Python como uma linguagem para a computação científica.
O artigo tem esta citação sobre Python:
Python é uma linguagem de programação interpretada orientada a objetos que começa a receber considerável atenção em aplicações científicas (Python, 1999). Isso ocorre porque o Python e as linguagens de script em geral representam um próximo passo lógico para muitos projetos científicos (Dubois, 1994). Primeiro, o Python fornece uma linguagem de programação interpretada que pode ser vista como uma extensão das linguagens de comando simples já usadas por programas científicos
Segundo, o Python é facilmente integrado ao software escrito em outras línguas. Como resultado, ele pode servir como uma linguagem de controle para a condução de programas existentes, bem como uma linguagem de cola para combinar diferentes sistemas. Finalmente, o Python fornece uma grande coleção de módulos de terceiros, uma base de usuários estabelecida e uma variedade de documentação na forma de livros e referências on-line. Por esse motivo, pode-se vê-lo como uma versão altamente refinada e ampliada do que os cientistas costumam tentar realizar ao escrever seus próprios intérpretes de comando.
Então, você pode ver que o Python já tinha tração desde o final dos anos 90, por ser funcionalmente semelhante aos sistemas existentes na época e porque era fácil integrar o Python a coisas como C e aos programas existentes. Com base no conteúdo do artigo, o Python já estava em uso científico desde o período de 1995-1996.
Diferença no crescimento da popularidade
A popularidade de Ruby explodiu junto com o surgimento do Ruby On Rails, que foi lançado em 2004. Eu estava na faculdade quando ouvi pela primeira vez o burburinho sobre Ruby, e isso foi por volta de 2005-2006. O django para Python foi lançado no mesmo período (julho de 2005, de acordo com a Wiki), mas o foco da comunidade Ruby parecia muito centrado na promoção de seu uso em aplicativos da web.
O Python, por outro lado, já tinha bibliotecas que se encaixam na computação científica:
NumPy - NumPy começou oficialmente em 2005, mas as duas bibliotecas em que foi construída foram lançadas anteriormente: Numeric (1995) e Numarray (2001?)
BioPython - biblioteca de computação biológica para python, remonta a 2001, pelo menos
SAGE - Pacote de matemática com o primeiro lançamento público no início de 2005
E muito mais, embora eu não conheça muitas de suas linhas de tempo (além de apenas navegar nos sites de download), mas o Python também tem o SciPy (construído no NumPy, lançado em 2006), tinha ligações com R (a linguagem de estatísticas) em no início dos anos 2000, adquiriu o MatPlotLib e também obteve um ambiente de shell realmente poderoso no ipython.
O ipython foi lançado pela primeira vez no início dos anos 2000 e teve muitos recursos adicionados que o tornam muito bom para a computação científica, como gráficos integrados do matplotlib e capacidade de gerenciar clusters computacionais .
Do artigo acima:
Também vale a pena notar vários outros projetos de computação científica relacionados ao Python. A extensão numérica do Python adiciona manipulação rápida de matriz e matriz ao Python (Dubois 1996), o MMTK é um kit de ferramentas baseado em Python para modelagem molecular (Hinsen 1999), o projeto Biopython está desenvolvendo ferramentas baseadas em Python para pesquisa em ciências da vida (Biopython 1999), e o Visualization Toolkit (VTK) é um pacote de visualização avançado com ligações Python (VTK, 1999). Além disso, projetos em andamento na comunidade Python estão desenvolvendo extensões para processamento e plotagem de imagens. Finalmente, o trabalho apresentado em (Greenfield, 2000) descreve o uso de Python em projetos no STScI.
Boa lista de pacotes científicos e numéricos para Python .
Muito disso provavelmente se deve ao início da história e à relativa obscuridade do Ruby até os anos 2000, enquanto o Python ganhou força graças ao evangelismo do Google.
Então, se você estava avaliando as linguagens de script no período de 1995 a 2000, o que realmente estava vendo? Havia o Perl, que provavelmente era diferente o suficiente sintaticamente, para que as pessoas não quisessem usá-lo, e o Python, que tinha uma sintaxe mais clara e melhor legibilidade.
E sim, provavelmente há muito auto-reforço - o Python já possui todas essas ótimas bibliotecas úteis para a computação científica, enquanto o Ruby tem uma voz minoritária defendendo seu uso na ciência, e há algumas bibliotecas surgindo , como o SciRuby , mas As ferramentas do Python amadureceram na última década.
A comunidade de Ruby em geral parece estar muito mais interessada em promover o Ruby como uma linguagem da web, pois foi isso que realmente o tornou conhecido, enquanto o Python começou em um caminho diferente e, posteriormente, tornou-se amplamente usado como uma linguagem da web.