Wie Astronomen Python fast gespalten hätten und ein Entwickler alle rettete 🔭

Ihr schreibt jetzt import numpy as np im Automatismus, ohne darüber nachzudenken, dass hinter dieser Zeile ein Open-Source-Drama steckt, das Python als Sprache für Data Science im Keim hätte ersticken können. Wenn Anfang der 2000er alles anders gelaufen wäre, würden wir heute traurig Tensoren in R wälzen oder uns mit C++ quälen.

1995 schrieb Jim Hugunin Numeric – die erste vernünftige C-Erweiterung für die Arbeit mit mehrdimensionalen Arrays. Davor war Python in der Mathematik einfach eine langsame Skriptsprache.

Aber Numeric kam mit großen Dateien furchtbar zurecht. Das wurde zu einem kritischen Problem für Entwickler, die riesige Aufnahmen des Hubble-Teleskops verarbeiten mussten. Die Leute trugen nicht zu Numeric bei, sondern schrieben ihr eigenes Werkzeug – Numarray. Es funktionierte großartig mit riesigen Datenmengen des Teleskops, war aber bei kleinen Arrays leistungstechnisch eine Katastrophe.

⛓️‍💥 Ergebnis: eine klassische Open-Source-Spaltung des Ökosystems. Ein Teil der Pakete war fest von Numeric abhängig, ein Teil von Numarray. Sie in einer Pipeline zu kombinieren, war die reinste Ingenieurshölle, da ihre APIs inkompatibel waren.
2005 sah Travis Oliphant dieses Chaos und ... setzte sich hin und schrieb praktisch im Alleingang den Kern neu, wobei er die Leistung von Numeric mit den flexiblen Funktionen von Numarray verband.

So entstand NumPy.

Für diese Veröffentlichung ließ Travis das Schreiben wissenschaftlicher Artikel sein, was ihn letztlich seine akademische Karriere und eine feste Professorenstelle kostete. Die Universitätsbürokratie würdigte Open Source nicht. Aber ohne dies gäbe es kein Pandas, das Wes McKinney später auf Basis von NumPy schreiben würde. Es gäbe nicht den modernen Boom des maschinellen Lernens, PyTorch und TensorFlow, die ideologisch aus genau diesen N-dimensionalen Arrays entstanden sind.
Ja, und das erste Foto eines Schwarzen Lochs wurde ebenfalls mit Skripten erstellt, die auf diesem Stack basieren.

#so_ist_es_gekommen