[SciPy-dev] Boost vs CXX and SCXX

Mark Evans lists at UltimateG.com
Fri Sep 13 14:00:31 CDT 2002


> My current opinion remains that SCXX is the best fit for what weave
> needs.  I'd be interested, though, if a boost expert can chime in on
> what they think is required to extract the list, tuple, dictionary stuff
> from boost and whether it is appropriate.

A couple years ago my company tasked me with an assignment.  I was to
evaluate C++ interfacing libraries for Python.  At that time Boost was
still in alpha stages, but after using it, I considered myself very
fortunate to have found it.  Prior to that, my company and I had sunk a
lot of effort into CXX.

Even in its alpha stages, Boost was a dream compared to CXX, the C API,
or any other toolkit.

My particular project involved an ActiveX chart control interfaced to
wxPython, and a Python interface to both Mathematica and Numerical Python.
We were creating a technical workspace environment with Python as the
front end and Numpy / Mathematica as cooperating back ends.
I can't tell you what relief I felt after I switched from CXX to Boost.

Boost has a lot of complexity so that your C++ code can remain simple.  It
minimizes the impact of Python interfacing on C++ code.  Wrapping your
existing C++ code is trivially simple.  Not so with CXX and kin.

CXX has a different philosophy, which is to make C++ code read
like Python code.  About all it really does is to define some C++
objects that behave like Python atoms.  That's fine as far as it goes
but offers nowhere near the power of Boost.  Boost does not prohibit
writing code like that, but does not force it on you.

Compared to Boost, CXX is pretty dumbed-down, and SCXX even
more so.  I would hate to see SciPy standardize on either one of them
especially after my personal experiences "crawling out from under"
them.  http://www.boost.org/libs/python/doc/comparisons.html

After two years of development Boost has taken the lead and I would
consider it folly to adopt any other toolkit for C++ interfacing to
Python.  (In specialized cases I might use SWIG but otherwise Boost all
the way.)  The Boost development is very active whereas CXX and
kin are as stale as old bread.

If your Windows compiler is having problems with templates, then try
the free Digital Mars compiler (DigitalMars.com).

Mark




More information about the Scipy-dev mailing list