[Numpy-discussion] Proposed Roadmap Overview

Robert Kern robert.kern@gmail....
Sat Feb 18 16:51:42 CST 2012


On Sat, Feb 18, 2012 at 22:29, Matthew Brett <matthew.brett@gmail.com> wrote:
> Hi,
>
> On Sat, Feb 18, 2012 at 2:20 PM, Robert Kern <robert.kern@gmail.com> wrote:
>> On Sat, Feb 18, 2012 at 22:06, Matthew Brett <matthew.brett@gmail.com> wrote:
>>> Hi,
>>>
>>> On Sat, Feb 18, 2012 at 2:03 PM, Robert Kern <robert.kern@gmail.com> wrote:

>>>> Your misunderstanding of what was being discussed. The proposal being
>>>> discussed is implementing the core of numpy in C++, wrapped in C to be
>>>> usable as a C library that other extensions can use, and then exposed
>>>> to Python in an unspecified way. Cython was raised as an alternative
>>>> for this core, but as Chuck points out, it doesn't really fit. Your
>>>> assertion that what was being discussed was putting the core in C and
>>>> using Cython to wrap it was simply a non-sequitur. Discussion of
>>>> alternatives is fine. You weren't doing that.
>>>
>>> You read David's email?  Was he also being annoying?
>>
>> Not really, because he was responding on-topic to the bizarro-branch
>> of the conversation that you spawned about the merits of moving from
>> hand-written C extensions to a Cython-wrapped C library. Whatever
>> annoyance his email might inspire is your fault, not his. The
>> discussion was about whether to use C++ or Cython for the core. Chuck
>> argued that Cython was not a suitable implementation language for the
>> core. You responded that his objections to Cython didn't apply to what
>> you thought was being discussed, using Cython to wrap a pure-C
>> library. As Pauli (Wolfgang, not our Pauli) once phrased it, you were
>> "not even wrong". It's hard to respond coherently to someone who is
>> breaking the fundamental expectations of discourse. Even I had to
>> stare at the thread for a few minutes to figure out where things went
>> off the rails.
>
> I'm sorry but this seems to me to be aggressive, offensive, and unjust.
>
> The discussion was, from the beginning, mainly about the relative
> benefits of rewriting the core with C / Cython, or C++.
>
> I don't think anyone was proposing writing every line of the numpy
> core in Cython.  Ergo (sorry to use the debating term), the proposal
> to use Cython was always to take some of the higher level code out of
> C and leave some of it in C.   It does indeed make the debate
> ridiculous to oppose a proposal that no-one has made.
>
> Now I am sure it is obvious to you, that the proposal to refactor the
> current C code to into low-level C libraries, and higher level Cython
> wrappers, is absurd and off the table.  It isn't obvious to me.  I
> don't think I broke a fundamental rule of polite discourse to clarify
> that is what I meant,

It's not off the table, but it's not what this discussion was about.
The proposal is to implement the core in C++. Regardless of whether
the core is separated out as an independent non-Python library or not.
Some people want to use higher level language features in the core.
Cython was brought up as an alternative. If they were bringing up
Cython in the context of C-core+Cython-wrapper, then they were also
misunderstanding what the proposal was about. The discussion is about
a C++-core versus a C-core (either the current one or a refactored
one). If you want to argue for a C-core over a C++-core, that's great,
but talking about Cython features and stability is not relevant to
that discussion. It's an entirely orthogonal issue to what is
motivating the request to use C++ in the core. C-core+Cython-wrapper
is still a viable alternative, but the relevant bit of that is
"C-core". I would wager that after any refactoring of the core,
regardless of whether it is implemented in C++ or C, we would then
wrap it in Cython.

-- 
Robert Kern

"I have come to believe that the whole world is an enigma, a harmless
enigma that is made terrible by our own mad attempt to interpret it as
though it had an underlying truth."
  -- Umberto Eco


More information about the NumPy-Discussion mailing list