Hi Nathaniel,
I appreciate the clarification. Thank you for that. For what it's worth, I think that you may overestimate my involvement in the writing of that NEP. I sat down with Stephan during a Numpy dev meeting and we hacked something together. Afterwards several other people poured their thoughts into the process. I'd like to think that my perspective helped to inform this NEP, but it wasn't, by far, the driving force. If anyone had a strongest hand in the writing process it would probably be Stephan, who I find generally has a more conservative and careful perspective than I do.
That being said, I do think that Numpy would be wise to move quickly here. I think that the growing fragmentation that we see in array computing in Numpy (Tensorflow, Torch, Dask, Sparse, CuPy) is largely due to Numpy moving slowly in the past. There is, I think, a systemic problem slowly erupting now that I think the community to respond to quickly if it is possible to do so safely. I believe that Numpy should absolutely be willing to try something experimental, and then say "nope, that was a bad idea" and retract it if it doesn't work out well. I think that figuring out all of __array_concatenate__, __array_stack__, __array_foo__, etc. for each of the many cases will take too long to respond to in an effective timeframe. I believe that we simply don't move quickly enough that this piece-by-piece careful handling of the API will result in Numpy's API becoming a meaningful standard in the broader community in the near-future.
That being said, I think that we should engage in this piece-by-piece discussion, and as we figure them out we should slowly encroach on __array_function__ and remove functionality from it, much as __array_ufunc__ is not included in it in the current NEP. Ideally we should get to exactly where you want to get to. I perceive the __array_function__ protocol as a sort of necessary stop-gap.
All that being said, this is just my personal stance. I suspect that each of the authors of the NEP and others who engaged in its careful review have a different perspective, which should probably carry more weight than my own.
Best,
-matt