Я розширю на свій коментар.
Я думаю, що є кілька факторів, які вплинули на використання Python в наукових обчисленнях, хоча я не думаю, що існують певні історичні моменти, де можна сказати: "Так, це причина, чому Python використовується над Ruby / будь-чим іншим" "
Рання історія
Python і Ruby мають приблизно однаковий вік - за даними Вікіпедії, Python був офіційно вперше випущений у 1991 році, а Ruby в 1995 році.
Однак Python став відомішим раніше, ніж це робив Рубі, оскільки Google вже використовував Python і шукав розробників Python на зламі тисячоліття. Оскільки це не так, як у нас є кураторна історія використання мов програмування та їх впливу на людей, які ними користуються, я вважаю, що це раннє прийняття Python від Google було великим мотиватором для людей, які прагнуть розширитись за межі просто використання Matlab, C ++, Fortran, Stata, Mathematica тощо.
А саме, я маю на увазі, що 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 On Rails, який вперше з'явився в 2004 році. Я був у коледжі, коли вперше почув галас про Рубі, і це було близько 2005-2006 років. django для Python було випущено приблизно в той самий термін (липень 2005 року за версією Wiki), але фокус спільноти Ruby здавався дуже сильно зосередженим на просуванні його використання у веб-додатках.
У Python, з іншого боку, вже були бібліотеки, які підходили для наукових обчислень:
NumPy - NumPy офіційно розпочався в 2005 році, але дві бібліотеки, на яких він був побудований, були випущені раніше: Numeric (1995) і Numarray (2001?)
BioPython - бібліотека біологічних обчислень для пітона, щонайменше, відноситься до 2001 року
SAGE - Пакет Math з першим публічним випуском на початку 2005 року
І багато іншого, хоча я не знаю багатьох їх часових ліній (крім просто перегляду їх сайтів для завантаження), але Python також має SciPy (побудований на NumPy, випущений у 2006 році), мав зв'язки з R (мова статистики) в на початку 2000-х, отримав MatPlotLib, а також отримав дійсно потужне середовище оболонки в ipython.
ipython був вперше випущений на початку 2000-х, і до нього було додано багато особливостей, які роблять його дуже приємним для наукових обчислень, як інтегрований графік matplotlib та можливість керувати обчислювальними кластерами .
Зверху стаття:
Також варто відзначити ряд інших науково-обчислювальних проектів Python. Числове розширення Python додає маніпуляції з швидким масивом та матрицею до Python (Dubois 1996), MMTK - це набір інструментів для молекулярного моделювання на основі Python (Hinsen 1999). і візуалізаційний інструментарій (VTK) - це вдосконалений пакет візуалізації з прив’язками Python (VTK, 1999). Крім того, поточні проекти в спільноті Python розробляють розширення для обробки зображень та побудови графіків. Нарешті, робота, представлена в (Greenfield, 2000), описує використання Python в проектах STScI.
Хороший список наукових та числових пакетів для Python .
Так багато цього, мабуть, пов’язано з ранньою історією та відносною невідомістю Рубі до 2000-х років, тоді як Python отримав тягу завдяки євангелізації Google.
Отже, якщо ви оцінювали мови сценаріїв у період з 1995 по 2000 роки, на що ви насправді дивилися? Був Perl, який, ймовірно, був досить синтаксичний, що люди не хотіли ним користуватися, а потім з'явився Python, який мав чіткіший синтаксис і кращу читабельність.
І так, напевно, є дуже багато підкріплення - Python вже має всі ці великі, корисні бібліотеки для наукових обчислень, тоді як у Рубі голос меншості виступає за його використання в науці, і деякі бібліотеки проростають, як SciRuby , але Інструменти Python дозріли за останнє десятиліття.
Спільнота Рубі взагалі набагато сильніше зацікавлена у наданні Рубі як веб-мови, оскільки саме це насправді стало добре відомим, тоді як Python почав інший шлях, а згодом широко використовувався як веб-мова.