My two cents:- Brian got the big one: boost allows you to produce pythonic 
bindings and, as long as you're doing them at the same time you are writing the 
original code it's not that big of a deal to write the wrappers by hand.- Back 
when I started this SWIG was a complete disaster in terms of how it handled C++ 
code.- the documentation is, IMO, much better than the SWIG documentation the 
moment you need to do anything that isn't fairly trivial. 
Neither is simple (the task itself is complex), but I still think that boost is 
the right choice for the RDKit

On Thu, Dec 1, 2016 at 7:09 PM +0100, "Brian Kelley" <> 

I expect the technical reason is that the boost wrapping was done well in 
advance of the swig.

Having used both, I think that boost wrappers are far more pythonic, compile 
faster, do docstrings better and finally handle exceptions between c++ and 
Python far better.

The downside is that when you get a compile error, it is several pages long.

While doing the same is possible in swig, it would require a serious rewriting 
that is one whole bunch of "not fun".
Brian Kelley

> On Dec 1, 2016, at 12:39 PM, David Cosgrove  wrote:
> Hi All,
> Having failed miserably to understand boost::python last week when trying to 
> add some new functions, I am wondering if there's a technical reason to 
> prefer it over swig?  Given there are swig wrappings for java and c#, it 
> feels logical to do the python wrapping that way as well. It would remove 
> some complexity from the maintenance, perhaps.  OTOH, if the end result isn't 
> as good, then that wouldn't be worth it, and I'll just have to try harder 
> with boost::python.
> Cheers,
> Dave
> ------------------------------------------------------------------------------
> _______________________________________________
> Rdkit-devel mailing list

Rdkit-devel mailing list

Rdkit-devel mailing list

Reply via email to