[SciPy-dev] Inclusion of cython code in scipy

Nathan Bell wnbell@gmail....
Wed Apr 23 09:41:06 CDT 2008


On Wed, Apr 23, 2008 at 8:00 AM, Ondrej Certik <ondrej@certik.cz> wrote:
>
>  Isn't this a similar (if not the same) problem when writing your code
>  using SWIG?

No, because the implementation (i.e. part that's harder to recreate)
is still written in C++.

>  Let's take sparsetools.i as an example, it also contains a lot of non
>  python, non C code. So one needs to depend (and maintain!) SWIG. Well,
>  Cython is a lot more lightweight and more robust solution imho.

A lot?  I took numpy.i from the NumPy repository, made a few changes,
and added sparsetools.i to generate the templates.  If SWIG
disappeared overnight, I'd wrap *the very same, unmodified C++ code*
using another wrapper generator (perhaps Cython).  If I wanted to use
sparsetools in another VHLL then I would wrap it for that one too.

OTOH if I had written sparsetools in Cython (as opposed to wrapping
sparsetools with Cython) and Cython disappeared, then I'd have to
rewrite the a substantial amount of the implementation.

Again, I think using Cython in place of SWIG is a fine thing to do.  I
just wouldn't want write too much of it any more than I'd want to
write reams of hand-coded C wrappers or reams of SWIG.

>  But even if Cython stays as yet another language -- it's still easier
>  and less error prone than to write the C code by hand.

I don't disagree.  However, writing C++ and wrapping with SWIG is also
easier than writing hand-coded extension modules, with the added
benefit of decoupling the core implementation from the interface.

-- 
Nathan Bell wnbell@gmail.com
http://graphics.cs.uiuc.edu/~wnbell/


More information about the Scipy-dev mailing list