Path: csiph.com!x330-a1.tempe.blueboxinc.net!newsfeed.hal-mli.net!feeder1.hal-mli.net!news.glorb.com!news2.glorb.com!news.astraweb.com!border6.newsrouter.astraweb.com!news-out.octanews.net!indigo.octanews.net!auth.beige.octanews.com.POSTED!not-for-mail From: Paul Rubin Newsgroups: comp.lang.python Subject: Re: Guido rethinking removal of cmp from sort method References: <4d7cbfcb$0$29971$c3e8da3$5496439d@news.astraweb.com> <4d94326c$0$30003$c3e8da3$5496439d@news.astraweb.com> Date: Fri, 01 Apr 2011 00:45:24 -0700 Message-ID: <7x8vvue7or.fsf@ruckus.brouhaha.com> Organization: Nightsong/Fort GNOX User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/23.1 (gnu/linux) Cancel-Lock: sha1:IbJM9W31Cr+Zzx66ZiNTJkpJv5k= MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Lines: 14 NNTP-Posting-Date: 01 Apr 2011 02:45:24 CDT X-Complaints-To: abuse@octanews.net Xref: x330-a1.tempe.blueboxinc.net comp.lang.python:2340 Chris Angelico writes: > Provably false. Even a well-designed interface, if it is asked to deal > with a changing implementation and changing requirements, will > eventually either acquire cruft, or be found too rigid to be of use. What happens then is you define a new interface. In Microsoft-speak if the IWhatever interface needs an incompatible extension like new parameters, they introduce IWhatever2 which supports the new parameters. They change the implementation of IWhatever so it becomes a wrapper for IWhatever2 setting the new parameters to default values, to keep implementing the old behavior. Removing cmp certainly isn't the most disruptive change of Python 3, but it seems like the one with the least benefit.