Guido rethinking removal of cmp from sort method

harrismh777 harrismh777 at charter.net
Sat Apr 2 04:29:35 EDT 2011


Chris Angelico wrote:
> I've been a C++ programmer for nearly twenty years. I think I know a
> few things about OOP. Actually, I've done OOP in non-OO languages;
> most notably, plain old C. The OS/2 Presentation Manager class
> hierarchy (SOM) is primarily implemented in C, for instance. My point
> is that "object orientation" is completely separate from
> "implementation is separate from interface".

    Thank you for helping me there with your stats...

>
> Not sure where Knowledge (OOP) comes in there. Must ask my DM some day.
>

    Ok, its an honest question.  The answer is the heart of this debate, 
actually. Please be patient and try to hear this...  the bickering on 
this thread about whether the cmp= removal is a bad thing has been 
focused on the *wrong issue*.  The issue is not whether there is a 
use-case. The issue is not whether there is a technical reason for 
justifying the existence of  L.sort(cmp= ).   The issues debated ad 
nauseum here by most folks are missing the real point (the main issue).

    The real issue facing the community in this cmp= debate is whether 
an established, documented, useful, widely *used* advertised class 
interface should be removed (don't miss this) for strictly philosophical 
reasons based on the expectations of the OOP client community in terms 
of trust and accountability (OOA&D) for the established promises of the 
advertised class interfaces of an *advertised* OOP scripting language--- 
er, Python.

    In other words, does the PSF have a responsibility to maintain the 
L.sort(cmp= key= reverse=) interface for strictly *philosophical* 
principle based on established norms for *any* OOP language?  (and) is 
there OOA&D expectation for this principle?

    The rest of the thread is arguing for a *technical* determination 
for inclusion of the cmp= keyword...  I am arguing (on the other hand) 
for a *philosophical* determination for inclusion of the cmp= keyword.


> But this is getting seriously off-topic; none of this connects with
> the cmp= parameter.

Well, we have to agree to disagree on that point... my view is that this 
is right-on-topic. Guido should restore the interface, period. And the 
main point is that this is regardless of technical underpinnings like 
"cruft," performance issues, &etc.

Now, there may be other issues...   CPython to PyPy, for instance, that 
may or may not affect this ... I don't know. That's not my problem. My 
problem is that the  class list(object).sort(cmp= key= reverse=) 
interface will be broken in 3.3+ unless somebody argues well for 
inclusion.  Some folks are arguing for inclusion based on technical 
merit... and that's fine...  I am arguing based on philosophical premise 
and OOA&D OOP expectations from the OOP Python client community.

Please forgive me, if I made you feel insulted,... that was not intended.

Kind regards,
m harris



More information about the Python-list mailing list