Ampliaré mi comentario.
Creo que hay algunos factores que influyeron en el uso de Python en la informática científica, aunque no creo que haya ningún punto histórico definitivo en el que se pueda decir: "Sí, esa es la razón por la cual Python se usa sobre Ruby / cualquier otra cosa". "
Historia temprana
Python y Ruby tienen aproximadamente la misma edad; según Wikipedia, Python se lanzó oficialmente por primera vez en 1991 y Ruby en 1995.
Sin embargo, Python llegó a la fama antes que Ruby, ya que Google ya estaba usando Python y estaba buscando desarrolladores de Python en el cambio de milenio. Como no es que tengamos una historia curada de usos de lenguajes de programación y sus influencias en las personas que los usan, teorizaré que esta adopción temprana de Python por parte de Google fue un gran motivador para las personas que buscan expandirse más allá de solo usar Matlab, C ++, Fortran, Stata, Mathematica, etc.
Es decir, quiero decir que Google estaba usando Python en un sistema donde tenían miles de máquinas (piense en paralelización y escala) y procesaba constantemente muchos millones de puntos de datos (nuevamente, escala).
Confluencia de eventos
La informática científica se hacía en máquinas especializadas como SGI y Crays (¿las recuerdas?), Y por supuesto FORTRAN fue (y sigue siendo) ampliamente utilizado debido a su relativa simplicidad y porque podría optimizarse más fácilmente.
En la última década más o menos, el hardware básico (lo que significa cosas que usted o yo podemos pagar sin ser millonarios) se ha hecho cargo del ámbito informático científico y masivo. Mire las 500 clasificaciones actuales : muchas de las 'supercomputadoras' mejor clasificadas del mundo están construidas con hardware Intel / AMD normal.
Python llegó en un buen momento ya que, nuevamente, Google estaba promocionando Python, y Google estaba usando hardware básico, y tenían miles de máquinas.
Además, si profundizas en algunos viejos artículos de computación científica, comenzaron a surgir alrededor de la era del 2000.
Soporte anterior
Aquí hay un artículo escrito para el Software y Sistemas de Análisis de Datos Astronómicos , escrito en 2000, que sugiere Python como un lenguaje para la computación científica.
El artículo tiene esta cita sobre Python:
Python es un lenguaje de programación orientado a objetos interpretado que está comenzando a recibir considerable atención en aplicaciones científicas (Python, 1999). Esto se debe a que Python, y los lenguajes de script en general, representan el siguiente paso lógico para muchos proyectos científicos (Dubois 1994). Primero, Python proporciona un lenguaje de programación interpretado que puede verse como una extensión de los lenguajes de comando simples que ya utilizan los programas científicos.
En segundo lugar, Python se integra fácilmente con el software escrito en otros idiomas. Como resultado, puede servir como un lenguaje de control para controlar los programas existentes, así como un lenguaje adhesivo para combinar diferentes sistemas. Finalmente, Python proporciona una gran colección de módulos de terceros, una base de usuarios establecida y una variedad de documentación en forma de libros y referencias en línea. Por esta razón, uno podría verlo como una versión altamente pulida y ampliada de lo que los científicos a menudo intentan lograr al escribir sus propios intérpretes de comandos.
Entonces puede ver que Python ya había tenido tracción desde finales de los 90, debido a que era funcionalmente similar a los sistemas existentes en ese momento, y porque era fácil integrar Python con cosas como C y los programas existentes. Con base en el contenido del artículo, Python ya estaba en uso científico desde el período de tiempo 1995-1996.
Diferencia en el crecimiento de la popularidad
La popularidad de Ruby explotó junto con el surgimiento de Ruby On Rails, que salió por primera vez en 2004. Estaba en la universidad cuando escuché por primera vez el rumor sobre Ruby, y eso fue alrededor de 2005-2006. django para Python se lanzó alrededor del mismo período de tiempo (julio de 2005 según Wiki), pero el enfoque de la comunidad Ruby parecía estar muy centrado en promover su uso en aplicaciones web.
Python, por otro lado, ya tenía bibliotecas que se ajustaban a la informática científica:
NumPy : NumPy comenzó oficialmente en 2005, pero las dos bibliotecas en las que se creó se lanzaron anteriormente: Numeric (1995) y Numarray (2001?)
BioPython - biblioteca de computación biológica para python, se remonta al 2001, al menos
SAGE : paquete matemático con el primer lanzamiento público a principios de 2005
Y muchos más, aunque no conozco muchas de sus líneas de tiempo (aparte de solo navegar por sus sitios de descarga), pero Python también tiene SciPy (construido en NumPy, lanzado en 2006), tenía enlaces con R (el lenguaje de estadísticas) en A principios de la década de 2000, obtuve MatPlotLib, y también obtuve un entorno de shell realmente poderoso en ipython.
ipython se lanzó por primera vez a principios de la década de 2000, y se le han agregado muchas características que lo hacen muy bueno para la computación científica, como el gráfico integrado matplotlib y la capacidad de administrar clústeres computacionales .
Del artículo anterior:
También vale la pena señalar varios otros proyectos de computación científica relacionados con Python. La extensión numérica de Python agrega manipulación rápida de matriz y matriz a Python (Dubois 1996), MMTK es un kit de herramientas basado en Python para modelado molecular (Hinsen 1999), el proyecto Biopython está desarrollando herramientas basadas en Python para la investigación en ciencias de la vida (Biopython 1999), y Visualization Toolkit (VTK) es un paquete de visualización avanzado con enlaces de Python (VTK, 1999). Además, los proyectos en curso en la comunidad de Python están desarrollando extensiones para el procesamiento y el trazado de imágenes. Finalmente, el trabajo presentado en (Greenfield, 2000) describe el uso de Python en proyectos en el STScI.
Buena lista de paquetes científicos y numéricos para Python .
Entonces, gran parte de esto se debe probablemente a la historia temprana y la relativa oscuridad de Ruby hasta la década de 2000, mientras que Python había ganado tracción gracias al evangelismo de Google.
Entonces, si estaba evaluando lenguajes de secuencias de comandos en el período de 1995 a 2000, ¿qué estaba mirando realmente? Estaba Perl, que probablemente era lo suficientemente diferente sintácticamente para que la gente no quisiera usarlo, y luego estaba Python, que tenía una sintaxis más clara y una mejor legibilidad.
Y sí, probablemente exista una gran cantidad de autorrefuerzo: Python ya tiene todas estas geniales y útiles bibliotecas para la informática científica, mientras que Ruby tiene una voz minoritaria que defiende su uso en la ciencia, y hay algunas bibliotecas que están surgiendo , como SciRuby , pero Las herramientas de Python han madurado en la última década.
La comunidad de Ruby en general parece estar mucho más interesada en promover Ruby como un lenguaje web, ya que eso es lo que realmente lo hizo bien conocido, mientras que Python comenzó en un camino diferente, y más tarde se convirtió en un lenguaje web.