boost::python - empfehlbar oder nicht?
-
Hallo.
Ich habe sporadisch schon einige Beiträge in diesem und anderen Foren gesehen, die einerseits gut von boost::python reden, andere jedoch eher negativ.Was ich bisher aufgeschnappt habe ist folgendes (keine Ahnung ob das alles so stimmt):
+ ist einfach zu verstehen (kann ich nur zustimmen nachdem was ich bisher in der Dokumentation gesehen habe)
+ bietet ein unkompliziertes Interface zur Erweiterung von Python
+ bietet fast alle Funktionen von __builtins__ aus Python
+ Klassensupport
- hohe Kompilierzeit
- hoher Speicherverbrauch
- langsamer als manuelles erweitern mit der C-API
- großer Overhead (Runtime?)Wie man sieht sind die (mir bisher negativ aufgefallenen) Aspekte grob und nicht unwichtig. Gibt es hier Leute mit Erfahrungen? Ich möchte nicht mein ganzes Projekt umschmeißen, um nachher festzustellen, dass es umsonst war.
Gruß und Danke
-
PySide ist ein Projekt, das freie Python-Bindings für Qt4 erstellt. Qt4 ist LGPL, PyQt4 will das nicht. PySide hat für die Qt4-Bindings boost.python genommen. Die Größe des Moduls ist explodiert! Das liegt daran, dass boost.python alles über templates macht, und da kommen schonmal zig template-Instantiierungen zusammen.
Paludis (mein Paketmanager) verwendet auch boost.python. Der Manager ist auch nicht gerade klein (schau mal die sourcen auf paludis.pioto.org), die Bindings sind alles andere als groß.Du siehst:
- Man kann es verwenden
- auch für umfangreichere Projekte
- alles ist relativ, auch der Speicherfresser

Alternativen? Direkt schreiben, SWIG (kann gleich noch viele andere Sprachen, nicht nur python), PyCPP, google findet sicher noch mehr Generatoren/Supportlibs

Also experimentieren, was dir am liebsten ist. Am meisten lernst du, wenn du mal zur Probe alles selber schreibst (für ein kleines Testprojekt, versteht sich :)).