[Pythonmac-SIG] Re: [MACTCL] Re: Python/Tkinter and QuickTimeTcl
Jack Jansen
Jack.Jansen@oratrix.com
Fri, 22 Mar 2002 10:33:40 +0100
On Thursday, March 21, 2002, at 10:11 , Jim Ingham wrote:
> Jack,
>
> I would have tried SWIG for the same purposes. It generates interfaces
> for Perl, Python, Tcl/Tk, Guile, Ruby and a bunch of others from C &
> C++. I haven't had opportunity to use it, but other people speak very
> highly of it.
>
> Did you have some bad experiences with it, or had you just not heard of
> it, or did you mostly want to use a tool written in Python?
Bgen predates swig. It was actually written by Guido himself about 8-9
years ago, I think, and I basically inherited it. Swig has the big
advantages of being easier to use, and of generating interface modules
for other languages than Python.
Bgen's main two advantages are that it is more automatic (once it has
been setup) and more powerful. More automatic: you can feed it .h files
straight from Apple, so the next version of Universal Headers just gets
fed through it and often the interface grows with the new functionality
automatically. More powerful: it can be told about Python objects
wrapping C structs, and you can tell it patterns of C arguments and how
to represent them in Python:
- RGBColor color - Represent as Python (r, g, b) tuple
- const char *foo, int foo_len - Binary input buffer, use a single
Python string
- WindowRef w - Represent this as a Python PyMac_WindowObject object
- WindowRef w as first argument - don't generate this as a function but
as a method of the PyMac_WindowObject type.
Over the years I've been talking to the swig people about integrating
swig and bgen, but all of us always have more urgent things to do,
unfortunately:-(
--
- Jack Jansen <Jack.Jansen@oratrix.com>
http://www.cwi.nl/~jack -
- If I can't dance I don't want to be part of your revolution -- Emma
Goldman -