Python vs C, interpretado vs compilado, etc.
Alberto Valverde
alberto en toscat.net
Vie Ene 16 11:53:22 CET 2009
Francesc Alted wrote:
> A Thursday 15 January 2009, Antonio Beamud Montero escrigué:
>
>> Antes de meterte con modulos en C, te recomiendo que ejecutes el
>> código con la libreria JIT pysco. En mi caso, un analizador de flujos
>> mpeg2 paso a ir 20 veces más rápido con solo añadir las lineas:
>>
>> import psyco
>> psyco.full()
>>
>> Por lo que no tuve que optimizar nada (y eso que ya tenía la mitad
>> del código preparado para pyrex).
>>
>
> Conviene advertir que Psyco sólo funciona para plataformas i386 de
> 32-bits, y que ya empiezan a haber demasiados procesadores/plataformas
> de 64-bits como para ignorar este hecho.
>
> Psyco fue una tremenda revolución en su dia, y es una lástima que su
> autor no haya hecho una versión para 64-bits, pero parece que decidió
> concentrar todos sus esfuerzos en PyPy [1], que a la postre es una
> continuación, pero a lo bestia, de Psyco. Por desgracia, los
> objectivos de PyPy son tan ambiciosos (hacer de Python un lenguaje más
> rápido que C, como reza la página principal del proyecto [2], con un
> poco de guasa, todo sea dicho), que empiezo a dudar que el proyecto
> pueda ser funcional algún dia.
>
Pues a mí no me parece algo tan descabellado, tal vez porque confío más
en la capacidad de un compilador en generar código-máquina eficiente que
en la de un humano para cualquier problema medianamente complejo. :)
Creo que es precisamente es en los problemas de cierta complejidad donde
un lenguaje de alto nivel como python permite al programador abstraerse
de micro-optimizaciones y concentrarse en estructuras de datos y
algoritmos eficientes. Dejarle al compilador la tarea de optimizar el
cómo el hardware implementa los algoritmos me parece ideal.
Como anécdota para "demostrar" que PyPI ya es funcional hasta cierto
punto comento que estamos utilizándolo para compilar automaticamente
funciones vectoriales escritas en python para alimentárselas a
numpy/scipy de una manera similar a la que se describe aquí:
http://www.enthought.com/~ischnell/paper.html
Saludos,
Alberto
_______________________________________________
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