Python vs C, interpretado vs compilado, etc.

Francesc Alted faltet en pytables.org
Jue Ene 15 17:04:56 CET 2009


A Thursday 15 January 2009, Vicent escrigué:
> Hola a todos.
>
> Soy todavía nuevo en Python. Pretendo utilizarlo para programar
> algoritmos científicos, con gran intensidad de cálculos, etc. Tengo
> claro que utilizaría numPy, SciPy y, en general, otros módulos
> recomendados dentro del ámbito científico (en concreto, me parece muy
> interesante la distribución Python(x,y)).
>
> Pero...
[clip]

Bueno, veo que vas bien encaminado (NumPy, SciPy, Python(x,y)...) y 
también que la gente te ha informado bastante.  En esta lista se ha 
repetido mucho pero nunca lo suficiente: es muy importante contar con 
un lenguaje en que uno se sienta a gusto y lo bastante potente como 
para afrontar todos tus problemas con ciertas garantias.  Si resulta 
que puedes jugar con él de manera interactiva, pues muchísimo mejor.  
Python es, en la opinión de mucha gente, justamente eso.

Además, mucha comunidad científica se está volcando con Python y esto, 
en un entorno donde la velocidad de cálculo es crítica, quiere decir 
algo.  Supongo que ya conoces la regla del 90/10 que dice que el 90% 
del tiempo de cálculo en los programas se efectúa en el 10% del código.  
Así pues el secreto es preocuparse básicamente de tener el 10% de tu 
código ejecutándose de manera óptima.  Como ya te han dicho, muchas de 
las librerias que vienen con Python están optimizadas en C.  A parte, 
existen muchas otras especializadas en diferentes áreas, como el 
cálculo matricial (NumPy, SciPy, Scientific Python por nombrar sólo 
algunas), el acceso a bases de datos relacionales o de otras clases, 
como las orientadas a objetos (ZODB) u otras orientadas a tratamiento 
de cantidades de datos enormes (i.e. que exceden la memoria de la 
máquina) de manera eficiente (NetCDF4, PyTables, h5py), para hacer 
gráficos de calidad (matplotlib, PyQwt o Mayavi2) y una plétora de 
otros que seria muy atrevido enumerar.

Resumiendo, me atrevería a decir que usando Python, un programador 
avezado puede no sólo acabar sus programas mucho antes y con más 
calidad, sino conseguir iguales (a veces, mejores) prestaciones que en 
C.  La idea es preguntar a las listas o a tus amigos (incluye a Google 
entre ellos), aunque sobretodo, seguir tu instinto, para saber cuáles 
són la mejores herramientas para atacar tus problemas.

Salutacions,

-- 
Francesc Alted
_______________________________________________
Lista de correo Python-es 
http://listas.aditel.org/listinfo/python-es
FAQ: http://listas.aditel.org/faqpyes





Más información sobre la lista de distribución Python-es