Terry Reedy wrote:
Python 3 was announced and as a mildly code breaking version at least 5
years before it came out.

I appreciate the spirit of your arguments overall, and I do not necessarily disagree with much of what you are saying. I would like to challenge you to see this from a little different perspective, if I may.

There are two distinct ways for looking at this "mild code breakage," and it might be good to think about how we approach changes in the future based on an understanding of both perspectives, and consideration for the clients.

In the possible perspective of the Python language developers 3x changes are mild (in fact, overall, probably even insignificant percentage-wise). Ok, we removed the cmp comparison keyword from list.sort(), made the print() method consistent with the rest of the language, and correctly promoted integer divide 1/2 to float so that the answer is something greater than zero! Fine. Looks like just a couple little changes, no big deal, stop your whining.

The perspective of the Class client is something quite different. They do not look at the overall percentage of Python language definition that has changed (tiny percentage, right) they look at the overall percentage of their own projects that have just "broken" and need to be rewritten to accommodate the disruption in the advertised Class interface. And to the client-- these tiny changes are magna-bodacious! (nobbled thinking) You guys have changed integer divide---! the PRINT print() functionality is diff e r e n t ---! and for crying out loud.... you changed S O R T ( ) !!!

I wonder if folks like google need to do in-place sorts over lists very often ...?

I wonder how mnay Python scripts call the list.sort() method with the cmp keyword specified... ? (could it be thousands, or millions?) All the hoorah you guys are getting, as well all of this incessant bickering over cmp, is some of the answer to these questions.

When you get ready to change an advertised Class interface in the future, please consider my interface rules (I gave them to Steven) and please take into account your client base---the ones who are making valid assumptions about your Class interfaces. Its easy, and its most considerate.


king regards,
m harris



--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to