I fully understand this, and am willing to try developing cython code, but keep in mind that the real goal is more to have a widely used library than the most pythonic one (eg the most important thing is the community of users) and having talked to several researchers, they do like C.
> see inline comments:
>
> On Fri, Nov 5, 2010 at 2:02 PM, Maƫl Primet <
mael.primet@gmail.com> wrote:
>
>> Well,
>>
>> perhaps we should talk about this a little more, because there are many
>> aspects:
>> - of course, Cython has a more clean feeling
>> - however, it is still not as efficient as C (for some of the code I
>> published, I tried the Cython version first, then switched to C when I saw
>> that it was too slow)
>>
>
> I suspect this has more to do with how you've written the Cython versus the
> speed of Cython vs C. Cython is *very* fast when properly used.
>
>
>>
> - some older user of the library, less able with python, might still want to
>> develop C code and bind it if there is an easy way to do it
>>
>
> Since our data structure is a numpy array, manipulating that pointer in C
> would take an awful lot of knowledge about NumPy internals. Raising an
> exception even moreso. It would be less effort for said person to just learn
> Cython.
>
>
>> - it is interesting to have some simple C core code, like a function that
>> takes arrays as double * and (w, h) integers, because it enables easy reuse
>> of the core of the algorithm for some other projects (without having to
>> include the whole library) if someone only wants to extract one or two
>> algorithm (this might be interesting when we develop research code and some
>> private company want to use the algorithm )
>>
>>
> There is nothing stopping you from doing that in your own personal library.
> But seeing as how we creating a library for image processing in Python, I
> think we should use the best available tools for Python, thus making things
> most accessible and maintainable to our target audience.