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