[Numpy-discussion] Proposed Roadmap Overview
Charles R Harris
Fri Feb 17 22:03:21 CST 2012
On Fri, Feb 17, 2012 at 8:07 PM, Sturla Molden <firstname.lastname@example.org> wrote:
> Den 18. feb. 2012 kl. 01:58 skrev Charles R Harris <
> On Fri, Feb 17, 2012 at 4:44 PM, David Cournapeau <email@example.com>wrote:
>> I don't think c++ has any significant advantage over c for high
>> performance libraries. I am not convinced by the number of people argument
>> either: it is not my experience that c++ is easier to maintain in a open
>> source context, where the level of people is far from consistent. I doubt
>> many people did not contribute to numoy because it is in c instead if c++.
>> While this is somehow subjective, there are reasons that c is much more
>> common than c++ in that context.
> I think C++ offers much better tools than C for the sort of things in
> Numpy. The compiler will take care of lots of things that now have to be
> hand crafted and I wouldn't be surprised to see the code size shrink by a
> significant factor.
> The C++11 standard is fantastic. There are automatic data types, closures,
> reference counting, weak references, an improved STL with datatypes that
> map almost 1:1 against any built-in Python type, a sane threading API,
> regex, ect. Even prng is Mersenne Twister by standard. With C++11 it is
> finally possible to "write C++ (almost) like Python". On the downside,
> C++ takes a long term to learn, most C++ text books
Are crap ;) Yeah, that is a downside.
> teach bad programming habits from the beginning to the end, and C++
> becomes inherently dangerous if you write C++ like C. Many also abuse C++
> as an bloatware generator. Templates can also be abused to write code that
> are impossible to debug. While it in theory could be better, C is a much
> smaller language. Personally I prefer C++ to C, but I am not convinced it
> will be better for NumPy.
> I agree about Cython. It is nice for writing a Python interface for C, but
> get messy and unclean when used for anything else. It also has too much
> focus on adding all sorts of "new features" instead of correctness and
> stability. I don't trust it to generate bug-free code anymore.
> For wrapping C, Swig might be just as good. For C++, SIP, CXX or
> Boost.Pyton work well too.
> If cracy ideas are allowed, what about PyPy RPython? Or perhaps Go? Or
> even C# if a native compuler could be found?
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the NumPy-Discussion