Rozwinę mój komentarz.
Myślę, że istnieje kilka czynników, które wpłynęły na użycie Pythona w informatyce naukowej, ale nie sądzę, aby były jakieś ostateczne historyczne punkty, w których można by powiedzieć: „Tak, to jest powód, dla którego Python jest używany nad Ruby / cokolwiek innego. „
Wczesna historia
Python i Ruby są mniej więcej w tym samym wieku - według Wikipedii Python został oficjalnie wydany po raz pierwszy w 1991 roku, a Ruby w 1995 roku.
Jednak Python zyskał na znaczeniu wcześniej niż Ruby, ponieważ Google już używał Pythona i szukał programistów Pythona na przełomie tysiącleci. Ponieważ nie jest tak, że mamy wyselekcjonowaną historię użycia języków programowania i ich wpływ na ludzi, którzy ich używają, teoretyzuję, że to wczesne przyjęcie Pythona przez Google było dużym czynnikiem motywującym dla osób, które chcą rozszerzyć działalność poza używanie Matlaba, C ++, Fortran, Stata, Mathematica itp.
Mianowicie chodzi mi o to, że Google używał Pythona w systemie, w którym miały tysiące maszyn (myśl równoległość i skalowanie) i stale przetwarzały wiele milionów punktów danych (ponownie, skalowanie).
Zbieg zdarzeń
Obliczenia naukowe kiedyś były wykonywane na specjalistycznych maszynach, takich jak SGI i Crays (pamiętasz je?), I oczywiście FORTRAN był (i nadal jest) szeroko stosowany ze względu na jego względną prostotę i dlatego, że można go łatwiej zoptymalizować.
W ciągu ostatniej dekady sprzęt towarowy (czyli rzeczy, na które możesz sobie pozwolić, nie będąc milionerami) przejął naukową i ogromną sferę komputerową. Spójrz na 500 najlepszych obecnie rankingów - wiele najlepszych superkomputerów na świecie zbudowanych jest ze zwykłego sprzętu Intel / AMD.
Python pojawił się w odpowiednim czasie, ponieważ Google ponownie promowało Pythona, a Google korzystał ze sprzętu towarowego i mieli tysiące maszyn.
Dodatkowo, jeśli zagłębisz się w stare artykuły naukowe, pojawiły się one około 2000 roku.
Wcześniejsze wsparcie
Oto artykuł napisany dla Astronomical Data Analysis Software and Systems , napisany w 2000 roku, sugerujący Pythona jako język dla obliczeń naukowych.
Artykuł zawiera cytat o Pythonie:
Python jest zinterpretowanym obiektowym językiem programowania, który zaczyna być przedmiotem dużej uwagi w aplikacjach naukowych (Python, 1999). Wynika to z faktu, że Python i ogólnie języki skryptowe stanowią kolejny logiczny krok dla wielu projektów naukowych (Dubois 1994). Po pierwsze, Python zapewnia interpretowany język programowania, który można postrzegać jako rozszerzenie prostych języków poleceń używanych już przez programy naukowe
Po drugie, Python można łatwo zintegrować z oprogramowaniem napisanym w innych językach. W rezultacie może służyć zarówno jako język kontrolny do sterowania istniejącymi programami, jak i język kleju do łączenia różnych systemów. Wreszcie, Python zapewnia dużą kolekcję modułów stron trzecich, ugruntowaną bazę użytkowników oraz różnorodną dokumentację w postaci książek i referencji online. Z tego powodu można go postrzegać jako wysoce dopracowaną i rozszerzoną wersję tego, co naukowcy często próbują osiągnąć, pisząc własnych interpretatorów poleceń.
Widać więc, że Python miał już trakcję z końca lat 90., ponieważ był funkcjonalnie podobny do istniejących wówczas systemów i ponieważ łatwo było zintegrować Pythona z takimi rzeczami jak C i istniejące programy. Opierając się na treści artykułu, Python był już w użyciu naukowym od czasu 1995-1996.
Różnica we wzroście popularności
Popularność Ruby eksplodowała wraz z rozwojem Ruby On Rails, który po raz pierwszy ukazał się w 2004 roku. Byłem na studiach, kiedy po raz pierwszy naprawdę usłyszałem gwar o Ruby, a było to około 2005-2006. django dla Pythona zostało wydane w tym samym czasie (lipiec 2005 według Wiki), ale społeczność Ruby wydawała się bardzo mocno skoncentrowana na promowaniu jego użycia w aplikacjach internetowych.
Z drugiej strony Python miał już biblioteki pasujące do obliczeń naukowych:
NumPy - NumPy oficjalnie zaczął działać w 2005 roku, ale dwie biblioteki, na których został zbudowany, zostały wydane wcześniej: Numeric (1995) i Numarray (2001?)
BioPython - biologiczna biblioteka komputerowa dla Pythona, pochodzi przynajmniej z 2001 roku
SAGE - Pakiet matematyczny z pierwszym publicznym wydaniem na początku 2005 roku
I wiele innych, choć nie znam wielu ich osi czasu (oprócz przeglądania stron pobierania), ale Python ma również SciPy (zbudowany na NumPy, wydany w 2006 roku), miał powiązania z R (język statystyk) w na początku XXI wieku dostał MatPlotLib, a także naprawdę potężne środowisko powłoki w ipython.
ipython został wydany po raz pierwszy na początku 2000 roku i ma wiele funkcji dodanych do niego, które sprawiają, że jest bardzo przyjemny w obliczeniach naukowych, takich jak zintegrowane wykresy matplotlib i możliwość zarządzania klastrami obliczeniowymi .
Z powyższego artykułu:
Warto również zwrócić uwagę na szereg innych naukowych projektów komputerowych związanych z Pythonem. Numeryczne rozszerzenie Pythona dodaje do Pythona szybką manipulację macierzą i matrycą (Dubois 1996), MMTK to oparty na Pythonie zestaw narzędzi do modelowania molekularnego (Hinsen 1999), projekt Biopython opracowuje oparte na Pythonie narzędzia do badań z zakresu nauk przyrodniczych (Biopython 1999), a Visualization Toolkit (VTK) to zaawansowany pakiet wizualizacji z powiązaniami Pythona (VTK, 1999). Ponadto trwające projekty w społeczności Python opracowują rozszerzenia do przetwarzania i drukowania obrazów. Na koniec praca przedstawiona w (Greenfield, 2000) opisuje wykorzystanie Pythona w projektach na STScI.
Dobra lista naukowych i numerycznych pakietów dla Pythona .
Wiele z tego wynika prawdopodobnie z wczesnej historii i względnej niejasności Ruby aż do 2000 roku, podczas gdy Python zyskał popularność dzięki ewangelizacji Google.
Więc jeśli oceniałeś języki skryptowe w latach 1995–2000, na co tak naprawdę patrzyłeś? Był Perl, który prawdopodobnie był na tyle inny pod względem składniowym, że ludzie nie chcieli go używać, a potem był Python, który miał jaśniejszą składnię i lepszą czytelność.
I tak, prawdopodobnie jest wiele samowzmocnienia - Python ma już wszystkie te wspaniałe, przydatne biblioteki do obliczeń naukowych, podczas gdy Ruby ma mniejszościowy głos opowiadający się za jego wykorzystaniem w nauce, a niektóre biblioteki wyrastają, jak SciRuby , ale Narzędzia Pythona dojrzewały w ciągu ostatniej dekady.
Społeczność Ruby wydaje się być o wiele bardziej zainteresowana dalszym rozwijaniem Rubiego jako języka internetowego, ponieważ tak naprawdę stał się dobrze znany, podczas gdy Python zaczął na innej ścieżce, a później stał się szeroko stosowany jako język internetowy.