4 ms·
As someone who's got some experience with this (but nowhere near as much as you have - I am an amateur), I'd like to strongly disagree with you here. I find th
by djaychela 6y ago
As someone who's got some experience with this (but nowhere near as much as you have - I am an amateur), I'd like to strongly disagree with you here.
I find that slightly different APIs between libraries are a real energy-sapper, and having to do the mental gymnastics around them makes little sense to me. Yes, as a super-experienced programmer, you can remember each subtle difference in the syntax of each API, but I think many people find this difficult (me included), and it also leads to problems with code that's written when you've missed something or not used the appropriate part of the API.
One of the strengths of using SciKitLearn for me has been the interoperability across different ML models - by having the same API it means you can try something quickly without having to rewrite code, and can concentrate on the end results, not whether or not you're really telling it what you think you are because you've swapped an element of your pipeline out.
Learning the standard library of Python is a big task; there have been countless times when I've created something which is actually present, but I didn't know it was there, or how to look for it, and then 3 months later seen that utilised in some other code and had a "Why didn't I know that?" moment. I think having non-standard APIs across libraries will lead to this sort of situation, and a lot of reading documentation which would be obviated by the approach outlined in the article.
>Forcing the same call semantics on all these users doesn’t make sense.
I don't understand why not (providing, of course, they are all capable of having whatever is relevant conveyed to them appropriately?
What are the trade-offs that following this standard would involve (other than the delay due to bureaucracy that you mention)?
I don't see what is gained by the use of different method/function calls for what are the same method/function, as outlined in the table [1]
[1] - https://data-apis.org/images/array_API_comparison_output.png https://data-apis.org/images/array_API_comparison_output.png
- mlthoughts2018 6y agoI think a scary part of your comment is that since you don’t feel it would impact others use cases and you don’t see why some library might want different semantics, you leap to the conclusion that the burden of proof to prove these things rests with other people.