
Cómo los astrónomos casi rompen Python, y un desarrollador salvó a todos 🔭
Ahora escribes
import numpy as np automáticamente, sin siquiera pensar que detrás de esta línea hay un drama de código abierto que podría haber enterrado a Python como lenguaje para Data Science en su infancia. Si a principios de los 2000 todo hubiera ido por otro camino, hoy estaríamos manipulando tensores tristemente en R o sufriendo con C++.En 1995, Jim Hugunin escribió
Numeric — la primera extensión C sensata para trabajar con arrays multidimensionales. Antes de eso, Python en matemáticas era solo un lenguaje de scripting lento.Pero
Numeric manejaba pésimamente archivos grandes. Esto se convirtió en un problema crítico para los desarrolladores que necesitaban procesar imágenes gigantes del Hubble. Los chicos no contribuyeron a Numeric, sino que escribieron su propia herramienta — Numarray. Funcionaba genial con enormes volúmenes de datos del telescopio, pero perdía terriblemente en rendimiento con arrays pequeños.⛓️💥 Resultado: una clásica división del ecosistema de código abierto. Parte de los paquetes dependían rígidamente de
Numeric, otra parte de Numarray. Combinarlos en un mismo pipeline era un verdadero infierno de ingeniería, ya que sus API eran incompatibles.En 2005, Travis Oliphant miró este pantano y... se sentó y prácticamente solo reescribió el núcleo, fusionando a la fuerza el rendimiento de
Numeric con las características flexibles de Numarray.Así nació NumPy.
Por este lanzamiento, Travis dejó de escribir artículos científicos, lo que finalmente le costó su carrera académica y un puesto permanente como profesor. La burocracia universitaria no valoró el código abierto. Pero sin esto no habría existido
Pandas, que Wes McKinney escribiría más tarde sobre NumPy. No habría existido el auge moderno del aprendizaje automático, PyTorch y TensorFlow, que ideológicamente crecieron a partir de esos mismos arrays N-dimensionales.Y qué más da, la primera foto de un agujero negro también se ensambló con scripts basados en este stack.
#así_fue
Comentarios
0Aún no hay comentarios.
Inicia sesión para participar en la conversación.