[Numpy-discussion] Created NumPy 1.7.x branch
travis at continuum.io
Mon Jun 25 23:13:33 EDT 2012
>> That's a nice argument for a different convention, really it is. It's not enough for changing a convention that already exists. Now, the polynomial object could store coefficients in this order, but allow construction with the coefficients in the standard convention order. That would have been a fine compromise from my perspective.
> I'm much happier with the current solution. As long as I stick with
> the np.polynomial classes, I don't have to *think* about coefficient
> order. With a hybrid I would always have to worry about whether this
> animal is facing front or back.
I don't think you would have to worry about it at all. It would just be an interface you personally wouldn't ever call. In other words, you just provide the option for someone else to specify their *input* arrays in reverse order. You could keep them stored in this "natural order" just as they are now.
> I wouldn't mind if the old order is eventually deprecated and dropped.
> (Another example: NIST polynomial follow the new order, 2nd section
> no [::-1] in the second version.)
Thanks for providing the additional references. I do recognize that the convention is in use elsewhere.
>> It is *much*, *much* easier to create binaries of downstream packages than to re-write APIs. I still think we would be better off to remove the promise of ABI compatibility in every .X release (perhaps we hold ABI compatibility for 2 releases). However, we should preserve API compatibility for every release.
> freeze the API wherever it got by "historical accident"?
Not quite. You can add new and different APIs. You just can't change old ones. You also have to be careful about changes that break the implied but not specified code contract of current users. Even the strategy of "deprecating APIs needs to be used very judiciously and occasionally. We can deprecate APIs but can't remove them for several releases --- say 4 or 5.
You are correct, I'm concerned about users that have built additional packages on top of NumPy. Some of these we know about, many of them we don't know about --- as they are in internal systems.
Many users are shielded from NumPy changes by other APIs, this is an avenue of exploration that can and will continue. We aren't there yet, though, and I don't think the "plans for NumPy change" have previously considered enough the impact on users of NumPy.
Thank for your voicing your comments and perspective.
More information about the NumPy-Discussion