
Como astrônomos quase quebraram o Python, e um desenvolvedor salvou todos 🔭
Agora você escreve
import numpy as np automaticamente, sem sequer pensar que por trás dessa linha há um drama de código aberto que poderia ter enterrado o Python como linguagem para Ciência de Dados ainda no início. Se no começo dos anos 2000 tudo tivesse seguido um cenário diferente, hoje estaríamos tristemente manipulando tensores em R ou sofrendo com C++.Em 1995, Jim Hugunin escreveu
Numeric — a primeira extensão C decente para trabalhar com arrays multidimensionais. Antes disso, o Python em matemática era apenas uma linguagem de script lenta.Mas o
Numeric lidava horrivelmente com arquivos grandes. Isso se tornou um problema crítico para desenvolvedores que precisavam processar imagens gigantes do Hubble. Os caras não contribuíram para o Numeric, mas escreveram sua própria ferramenta — Numarray. Ela funcionava muito bem com volumes gigantescos de dados do telescópio, mas perdia feio em desempenho em arrays pequenos.⛓️💥 Resultado: uma clássica divisão de código aberto no ecossistema. Parte dos pacotes dependia fortemente do
Numeric, parte do Numarray. Combiná-los em um único pipeline era um verdadeiro inferno de engenharia, pois suas APIs eram incompatíveis.Em 2005, Travis Oliphant olhou para esse pântano e... sentou e praticamente sozinho reescreveu o núcleo, cruzando rigidamente o desempenho do
Numeric com os recursos flexíveis do Numarray.Assim nasceu o NumPy.
Por causa desse lançamento, Travis deixou de lado a escrita de artigos científicos, o que acabou custando sua carreira acadêmica e um cargo permanente de professor. A burocracia universitária não valorizou o código aberto. Mas sem isso, não haveria
Pandas, que Wes McKinney escreveria mais tarde sobre o NumPy. Não haveria o boom moderno de aprendizado de máquina, PyTorch e TensorFlow, que ideologicamente cresceram a partir desses mesmos arrays N-dimensionais.Aliás, a primeira foto da história de um buraco negro também foi montada com scripts baseados nessa pilha.
#assim_foi
Comentários
0Ainda não há comentários.