Hi everyone,

On 23. Aug 2018, at 17:35, Stephan Hoyer <shoyer@gmail.com> wrote:

On Tue, Aug 21, 2018 at 6:57 PM Nathaniel Smith <njs@pobox.com> wrote:
I mean, the idea of the envvar is to be a temporary measure enable
devs to experiment with a provisional feature, while being awkward
enough that people don't build lots of stuff assuming its there. It
doesn't have to 100% supported in every environment.

My understanding of the idea of the envvar is to obtain informed consent from NumPy users, e.g., "I understand that this is a unsupported experimental feature that may be removed in the future without warning."

It's pretty important for me personally that's it's possible to use this in a flexible set of environments, and in particular to have something that works in my preferred notebook environment. How else are we going to test this?

Every limitation that we put into the experimental version of this feature decreases the likelihood that it gets used enough to know if it's even a viable solution. If it's too awkward, nobody's even going to bother testing it, and this whole effort will fall flat on its face.
> I'm in complete agreement that only authors of end-user applications should
> invoke this option, but just because something is technically possible
> doesn't mean that people will actually do it or that we need to support that
> use case :).

I didn't say "authors of end-user applications", I said "end-users" :-).

These are mostly the same for NumPy, but I do disagree with you here. Ultimately we have to trust application developers to make the right choices for their tools. If they are willing to accept that maintenance burden of either (1) potentially being stuck on NumPy 1.16 forever or (2) needing to rewrite their code, that's their tradeoff to make. It's a little preposterous to force this decision onto end-users, who may not even know a tool is written in NumPy.
That said, I dunno. My intuition is that if we have a function call
like this then libraries that define __array_function__ will merrily
call it in their package __init__ and it accomplishes nothing, but
maybe I'm being too cynical and untrusting.

People can do lots of dumb things in Python (e.g., monkeypatching) -- the language doesn't stop them. Fortunately this mostly isn't a problem.

I might add that most duck array authors are highly unlikely to be newcomers to the Python space. We should just put a big warning there while enabling and that’ll be enough to scare away most devs from doing it by default.

NumPy-Discussion mailing list

Best Regards,
Hameer Abbasi
Sent from my iPhone