Ich werde meinen Kommentar erweitern.
Ich denke, es gibt ein paar Faktoren, die die Verwendung von Python im wissenschaftlichen Rechnen beeinflusst haben, obwohl ich glaube, dass es keine definitiven historischen Punkte gibt, an denen man sagen könnte: "Ja, das ist der Grund, warum Python über Ruby / irgendetwas anderem verwendet wird "
Frühe Geschichte
Python und Ruby sind ungefähr gleich alt - laut Wikipedia wurde Python 1991 und Ruby 1995 offiziell zum ersten Mal veröffentlicht.
Python wurde jedoch früher bekannt als Ruby, da Google bereits um die Jahrtausendwende Python verwendete und nach Python-Entwicklern suchte. Da es nicht so ist, als hätten wir eine kuratierte Geschichte der Verwendung von Programmiersprachen und ihrer Einflüsse auf die Benutzer, die sie verwenden, und ich werde die These aufstellen, dass diese frühe Einführung von Python durch Google eine große Motivation für Menschen war, die über die reine Verwendung von Matlab, C ++ hinausgehen möchten. Fortran, Stata, Mathematica usw.
Ich meine nämlich, dass Google Python in einem System verwendet hat, in dem es Tausende von Computern gab (denken Sie an Parallelisierung und Skalierung) und ständig viele Millionen Datenpunkte verarbeitet hat (wiederum Skalierung).
Ereigniskonflikt
Früher wurde wissenschaftliches Rechnen auf Spezialmaschinen wie SGIs und Crays durchgeführt (erinnerst du dich?), Und natürlich wurde (und wird) FORTRAN aufgrund seiner relativen Einfachheit und weil es einfacher zu optimieren war.
In den letzten zehn Jahren hat Commodity-Hardware (also Dinge, die Sie oder ich sich leisten können, ohne Millionäre zu sein) den wissenschaftlichen und massiven Computerbereich übernommen. Schauen Sie sich die aktuellen Top-500-Platzierungen an - viele der bestplatzierten Supercomputer der Welt sind mit normaler Intel / AMD-Hardware ausgestattet.
Python kam zu einem guten Zeitpunkt, da Google wieder Python bewarb und Google Standardhardware verwendete und sie Tausende von Maschinen besaßen.
Wenn Sie sich mit einigen alten Artikeln aus dem Bereich des wissenschaftlichen Rechnens befassen, tauchten sie in der Zeit um das Jahr 2000 auf.
Frühere Unterstützung
In diesem Artikel für Astronomical Data Analysis Software and Systems aus dem Jahr 2000 wird Python als Sprache für das wissenschaftliche Rechnen vorgeschlagen.
Der Artikel hat dieses Zitat über Python:
Python ist eine interpretierte objektorientierte Programmiersprache, die in wissenschaftlichen Anwendungen zunehmend Beachtung findet (Python, 1999). Dies liegt daran, dass Python und Skriptsprachen im Allgemeinen für viele wissenschaftliche Projekte einen nächsten logischen Schritt darstellen (Dubois 1994). Erstens bietet Python eine interpretierte Programmiersprache, die als Erweiterung der einfachen Befehlssprachen angesehen werden kann, die bereits von wissenschaftlichen Programmen verwendet werden
Zweitens lässt sich Python problemlos in Software integrieren, die in anderen Sprachen geschrieben wurde. Dadurch kann es sowohl als Steuerungssprache für die Ansteuerung bestehender Programme als auch als Klebesprache für die Kombination verschiedener Systeme dienen. Schließlich bietet Python eine große Sammlung von Modulen von Drittanbietern, eine etablierte Benutzerbasis und eine Vielzahl von Dokumentationen in Form von Büchern und Online-Referenzen. Aus diesem Grund könnte man es als eine hochglanzpolierte und erweiterte Version dessen ansehen, was Wissenschaftler oft versuchen, wenn sie ihre eigenen Befehlsinterpreter schreiben.
Sie können also sehen, dass Python bereits seit Ende der 90er Jahre bekannt ist, da es zu der Zeit funktionell mit den vorhandenen Systemen vergleichbar war und sich Python leicht in Dinge wie C und die vorhandenen Programme integrieren ließ. Basierend auf dem Inhalt des Artikels war Python bereits seit 1995-1996 im wissenschaftlichen Einsatz.
Unterschied im Beliebtheitswachstum
Rubys Popularität explodierte mit dem Aufstieg von Ruby On Rails, das erstmals im Jahr 2004 auf den Markt kam. Ich war auf dem College, als ich das erste Mal die Begeisterung für Ruby hörte, und das war zwischen 2005 und 2006. Django für Python wurde ungefähr im selben Zeitraum veröffentlicht (Juli 2005 laut Wiki), aber der Fokus der Ruby-Community schien sehr stark darauf gerichtet zu sein, seine Verwendung in Webanwendungen zu fördern.
Python hingegen verfügte bereits über Bibliotheken, die für das wissenschaftliche Rechnen geeignet waren:
NumPy - NumPy wurde 2005 offiziell gestartet, aber die beiden Bibliotheken, auf denen es aufbaute, wurden früher veröffentlicht: Numeric (1995) und Numarray (2001?).
BioPython - Biological Computing Library für Python, stammt mindestens aus dem Jahr 2001
SAGE - Math-Paket mit der ersten Veröffentlichung Anfang 2005
Und viele mehr, obwohl ich nicht viele ihrer Zeitpläne kenne (abgesehen vom Durchsuchen ihrer Download-Sites), aber Python hat auch SciPy (auf NumPy aufgebaut, 2006 veröffentlicht), das Bindungen mit R (der Statistiksprache) in Anfang der 2000er Jahre bekam MatPlotLib und bekam auch eine sehr leistungsfähige Shell-Umgebung in ipython.
ipython wurde zum ersten Mal in den frühen 2000er Jahren veröffentlicht und verfügt über viele Funktionen, die es für das wissenschaftliche Rechnen sehr nützlich machen, wie beispielsweise die integrierte Matplotlib-Grafik und die Fähigkeit, Rechencluster zu verwalten .
Aus obigem Artikel:
Es lohnt sich auch, eine Reihe anderer wissenschaftlicher Python-Computerprojekte zu erwähnen. Die numerische Python-Erweiterung erweitert Python um eine schnelle Array- und Matrix-Manipulation (Dubois 1996), MMTK ist ein Python-basiertes Toolkit für die molekulare Modellierung (Hinsen 1999), das Biopython-Projekt entwickelt Python-basierte Tools für die Life-Science-Forschung (Biopython 1999). und das Visualization Toolkit (VTK) ist ein erweitertes Visualisierungspaket mit Python-Bindungen (VTK, 1999). Darüber hinaus entwickeln laufende Projekte in der Python-Community Erweiterungen für die Bildverarbeitung und das Plotten. Schließlich wird in der in (Greenfield, 2000) vorgestellten Arbeit die Verwendung von Python in Projekten am STScI beschrieben.
Gute Liste von wissenschaftlichen und numerischen Paketen für Python .
Ein Großteil davon ist wahrscheinlich auf die frühe Geschichte und die relative Dunkelheit von Ruby bis in die 2000er Jahre zurückzuführen, während Python dank Googles Evangelisation an Bedeutung gewonnen hatte.
Also, wenn Sie Skriptsprachen in der Zeit von 1995 bis 2000 evaluierten, was haben Sie wirklich gesehen? Es gab Perl, das wahrscheinlich syntaktisch so unterschiedlich war, dass die Leute es nicht verwenden wollten, und dann gab es Python, das eine klarere Syntax und bessere Lesbarkeit aufwies.
Und ja, es gibt wahrscheinlich eine Menge Selbstverstärkung - Python verfügt bereits über all diese großartigen, nützlichen Bibliotheken für das wissenschaftliche Rechnen, während Ruby über eine Minderheitsstimme verfügt, die für den Einsatz in der Wissenschaft plädiert , und es gibt einige Bibliotheken, die aufkeimen, wie SciRuby , aber Pythons Werkzeuge sind im letzten Jahrzehnt gereift.
Rubys Community im Allgemeinen scheint viel stärker an der Förderung von Ruby als Web-Sprache interessiert zu sein, da dies den Bekanntheitsgrad von Ruby erhöht hat, während Python einen anderen Weg eingeschlagen hat und später als Web-Sprache weit verbreitet wurde.