Bagaimana para astronom hampir memecah Python, dan satu pengembang menyelamatkan semuanya 🔭

Sekarang Anda mengetik import numpy as np secara otomatis, bahkan tanpa berpikir bahwa di balik baris ini ada drama open-source yang bisa mengubur Python sebagai bahasa untuk Data Science sejak awal. Jika pada awal tahun 2000-an semuanya berjalan dengan skenario yang berbeda, hari ini kita akan dengan sedih memutar tensor di R atau menderita dengan C++.

Pada tahun 1995, Jim Hugunin menulis Numeric — ekstensi C pertama yang masuk akal untuk bekerja dengan array multidimensi. Sebelumnya, Python dalam matematika hanyalah bahasa skrip yang lambat.

Tetapi Numeric menangani file besar dengan sangat buruk. Ini menjadi masalah kritis bagi pengembang yang perlu memproses gambar raksasa dari Hubble. Mereka tidak berkontribusi ke Numeric, tetapi menulis alat mereka sendiri — Numarray. Alat ini bekerja dengan baik dengan volume data teleskop yang sangat besar, tetapi sangat buruk dalam kinerja pada array kecil.

⛓️‍💥 Hasilnya: perpecahan open-source klasik dari ekosistem. Sebagian paket sangat bergantung pada Numeric, sebagian lagi pada Numarray. Menggabungkannya dalam satu pipeline adalah neraka teknik yang nyata, karena API mereka tidak kompatibel.
Pada tahun 2005, Travis Oliphant melihat rawa ini dan... duduk dan hampir sendirian menulis ulang inti, dengan kuat menggabungkan kinerja Numeric dengan fitur fleksibel Numarray.

Maka lahirlah NumPy.

Demi rilis ini, Travis mengabaikan penulisan makalah ilmiah, yang pada akhirnya merugikan karir akademisnya dan posisi profesor tetap. Birokrasi universitas tidak menghargai kode sumber terbuka. Tapi tanpa ini, tidak akan ada Pandas, yang kemudian ditulis Wes McKinney di atas NumPy. Tidak akan ada ledakan pembelajaran mesin modern, PyTorch dan TensorFlow, yang secara ideologis tumbuh dari array N-dimensi tersebut.
Bahkan, foto pertama lubang hitam dalam sejarah juga dikumpulkan dengan skrip yang bergantung pada tumpukan ini.

#begitulah_jadinya