Ctype vs. Módulo python escrito en C/C++
Francesc Altet
faltet en carabos.com
Lun Ene 7 19:02:16 CET 2008
A Monday 07 January 2008, Oscar (.teri) Triano escrigué:
> Me gusta python, pero a veces para ciertas cosas hecho de menos la
> velocidad de una lenguaje compilado como es C y me gustaría tener esa
> mezcla de buen rendimiento (C) con el de productividad (Python). Así
> que me puse a ver maneras de cómo conseguir esto, distinto a
> optimizar python evitando puntos, usando map() y demás. Ví ctype y
> por supuesto cómo escribir un módulo de python en C/C++. Ctype por lo
> visto lo veo mucho más sencillo: tienes que crear una biblioteca en C
> sin nada más para luego cargarlo con ctype y a empezar a usar sus
> funciones. Para convertir tipos lo veo algo más claro que el de la
> forma tradicional con ctype.
> Sin más rodeos, ¿es mejor usar ctype para usar bibliotecas de C/C++ o
> es mejor construirse un módulo de python en C/C++?
Personalmente nunca he usado ctypes, pero por lo que tengo entendido es
la manera más sencilla de acceder a librerias hechas en C. Sin
embargo, para un uso más serio de clases en C, con fácil acceso a
estructuras de Python desde C y viceversa, yo diria que es mucho más
potente (y eficiente) Pyrex. Pyrex es un lenguaje orientado al objeto
con sintaxis muy parecida a la de Python, y te permite crear
extensiones Python con gran facilidad.
Últimamente a Pyrex le ha salido un fork llamado Cython, que parece que
tiene mucho tirón entre la gente que anda buscando muy altas
prestaciones (yo todavia tengo que probarlo, pero tiene muy buena
pinta).
En resumen, para cosas rapiditas, yo usaria ctypes, pero para
extensiones en C de cierta envergadura, Pyrex/Cython serian mejores
opciones, en mi opinión.
Saludos,
--
>0,0< Francesc Altet http://www.carabos.com/
V V Cárabos Coop. V. Enjoy Data
"-"
_______________________________________________
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