Я буду расширять свой комментарий.
Я думаю, что есть несколько факторов, которые повлияли на использование Python в научных вычислениях, хотя я не думаю, что есть какие-то определенные исторические моменты, в которых вы могли бы сказать: «Да, именно поэтому Python используется над Ruby / чем-то еще. "
История ранних веков
Python и Ruby примерно одного возраста - согласно Wikipedia, Python был впервые официально выпущен в 1991 году, а Ruby - в 1995 году.
Тем не менее, Python приобрел известность раньше, чем Руби, так как Google уже использовал Python и искал разработчиков Python на рубеже тысячелетий. Так как у нас нет кураторской истории использования языков программирования и их влияния на людей, которые их используют, я буду теоретизировать, что это раннее принятие Python компанией Google стало большим стимулом для людей, стремящихся выйти за рамки простого использования Matlab, C ++, Фортран, Стата, Математика и др.
А именно, я имею в виду, что Google использовал Python в системе, где у них были тысячи машин (например, распараллеливание и масштабирование) и постоянно обрабатывал многие миллионы точек данных (опять же, масштабирование).
Событие слияния
Научные вычисления раньше выполнялись на специализированных машинах, таких как SGI и Crays (помните их?), И, конечно, FORTRAN широко использовался (и все еще используется) из-за его относительной простоты и потому, что его можно было легче оптимизировать.
В последние десять лет или около того, в сфере научных и массовых вычислений захватили товарные аппаратные средства (то есть то, что вы или я можем себе позволить, не будучи миллионерами). Посмотрите на текущие топ-500 рейтинга - многие из «суперкомпьютеров» с самым высоким рейтингом в мире построены на обычном оборудовании Intel / AMD.
Python пришел вовремя, так как Google снова продвигал Python, а Google использовал обычное оборудование, и у них было тысячи машин.
Плюс, если вы покопаетесь в каких-то старых статьях по научным вычислениям, они начали появляться примерно в эпоху 2000 года.
Ранее поддержка
Вот статья, написанная для программного обеспечения и систем для анализа астрономических данных , написанная в 2000 году, предлагающая Python как язык для научных вычислений.
В статье есть эта цитата о Python:
Python - это интерпретируемый объектно-ориентированный язык программирования, которому в научных приложениях уделяется значительное внимание (Python, 1999). Это потому, что Python и языки сценариев в целом представляют собой следующий логический шаг для многих научных проектов (Dubois 1994). Во-первых, Python предоставляет интерпретированный язык программирования, который можно рассматривать как расширение простых командных языков, уже используемых научными программами.
Во-вторых, Python легко интегрируется с программным обеспечением, написанным на других языках. В результате он может служить как языком управления для управления существующими программами, так и языком связи для объединения различных систем. Наконец, Python предоставляет большую коллекцию сторонних модулей, устоявшуюся пользовательскую базу и разнообразную документацию в виде книг и онлайн-ссылок. По этой причине можно рассматривать его как весьма отточенную и расширенную версию того, что ученые часто пытаются достичь при написании своих собственных командных интерпретаторов.
Итак, вы можете видеть, что у Python уже была тяга, восходящая к концу 90-х годов, потому что он был функционально похож на существующие системы в то время, и потому что было легко интегрировать Python с такими вещами, как C и существующие программы. Основываясь на содержании статьи, Python уже находился в научном использовании, начиная с 1995-1996 годов.
Разница в росте популярности
Популярность Ruby взорвалась вместе с ростом Ruby On Rails, который впервые появился в 2004 году. Я был в колледже, когда впервые услышал шум о Ruby, и это было примерно в 2005-2006 годах. django для Python был выпущен примерно в то же время (июль 2005 года, согласно Wiki), но внимание сообщества Ruby, казалось, было сосредоточено на продвижении его использования в веб-приложениях.
Python, с другой стороны, уже имел библиотеки, которые подходят для научных вычислений:
NumPy - NumPy официально запущен в 2005 году, но две библиотеки, на которых он был построен, были выпущены ранее: Numeric (1995) и Numarray (2001?)
BioPython - библиотека биологических вычислений для python, датируется как минимум 2001 годом
SAGE - Математический пакет с первым публичным выпуском в начале 2005 года
И многие другие, хотя я не знаю многих из их временных шкал (кроме простого просмотра их сайтов загрузки), но Python также имеет SciPy (построенный на NumPy, выпущенном в 2006 году), имел привязки с R (язык статистики) в в начале 2000-х получил MatPlotLib, а также получил действительно мощную оболочку в ipython.
ipython был впервые выпущен в начале 2000-х годов, и в него было добавлено много функций, которые делают его очень удобным для научных вычислений, например, интегрированный графический режим matplotlib и возможность управления вычислительными кластерами .
Сверху статья:
Стоит также отметить ряд других научных проектов, связанных с Python. Числовое расширение Python добавляет быстрые манипуляции с массивами и матрицами в Python (Dubois 1996), MMTK - это основанный на Python инструментарий для молекулярного моделирования (Hinsen 1999), проект Biopython разрабатывает основанные на Python инструменты для исследований в области наук о жизни (Biopython 1999), и Visualization Toolkit (VTK) - это расширенный пакет визуализации с привязками Python (VTK, 1999). Кроме того, текущие проекты в сообществе Python разрабатывают расширения для обработки изображений и печати. Наконец, работа, представленная в (Greenfield, 2000), описывает использование Python в проектах в STScI.
Хороший список научных и числовых пакетов для Python .
Так что, скорее всего, это связано с ранней историей и относительной неясностью Ruby до 2000-х годов, тогда как Python приобрел популярность благодаря евангелизации Google.
Итак, если вы оценивали языки сценариев в период с 1995 по 2000 год, на что вы действительно смотрели? Был Perl, который, вероятно, достаточно отличался синтаксически, чтобы люди не хотели его использовать, а затем был Python, который имел более четкий синтаксис и лучшую читабельность.
И да, вероятно, есть много самоусиления - у Python уже есть все эти замечательные полезные библиотеки для научных вычислений, в то время как у Ruby есть голос меньшинства, выступающий за его использование в науке, и есть некоторые библиотеки, такие как SciRuby , но Инструменты Python созрели за последнее десятилетие.
Сообщество Ruby в целом, похоже, гораздо больше заинтересовано в продвижении Ruby в качестве веб-языка, поскольку именно это действительно сделало его известным, в то время как Python начинал с другого пути, а позже стал широко использоваться в качестве веб-языка.