On 25 juin 2013, at 13:22, Igor Stasenko wrote:

> On 25 June 2013 12:59, Camille Teruel <camille.ter...@gmail.com> wrote:
>> 
>> On 25 juin 2013, at 11:45, Igor Stasenko wrote:
>> 
>> On 25 June 2013 11:09, Camille Teruel <camille.ter...@gmail.com> wrote:
>> 
>> 
>> On 25 juin 2013, at 10:28, Esteban Lorenzano wrote:
>> 
>> 
>> 
>> On Jun 24, 2013, at 6:59 PM, Camillo Bruni <camillobr...@gmail.com> wrote:
>> 
>> 
>> 
>> On 2013-06-24, at 18:55, Stéphane Ducasse <stephane.duca...@inria.fr> wrote:
>> 
>> 
>> 
>> the isBlah is not optimal now it is just there and we cannot rewrite
>> 
>> everything.
>> 
>> 
>> I still think that is: is a nice way to kill some of the isPlague in Object.
>> 
>> 
>> 
>> I still don't see what you solve, and the idea to use symbols for #is: is
>> 
>> also
>> 
>> 
>> wrong, for me that's going back to string-based programming.
>> 
>> 
>> 
>> well, that's basically my argument agains #is:
>> 
>> IMO is also an important performance issue in many cases, because is
>> 
>> replacing a simple send with a string comparison and that can provoke
>> 
>> slowdowns in some places (no idea where,  this is just theoretical :)...
>> 
>> Of course, as "pharo designers" we should be careful on not overpopulate
>> 
>> Object with isBlah methods... but sometimes they are needed :)
>> 
>> 
>> 
>> +1.
>> 
>> Indeed, sometimes they are needed. You can't replace every isXXX send with a
>> 
>> new visitor or dispatching by adding more and more extension methods all
>> 
>> over the place (including Object BTW).
>> 
>> Yet a fair amount of these methods can be removed.
>> 
>> I think that a lot of these methods exist only because people think that
>> 
>> isKindOf:/isMemberOf: are always evil, and its not true.
>> 
>> There is at least three cases were I don't feel guilty using
>> 
>> isKindOf:/isMemberOf: :
>> 
>> - In unit tests
>> 
>> - In #= methods
>> 
>> - When I really want to ensure that an object is an instance of a specific
>> 
>> class (see MethodContext>>#privRefreshWith: for example). This poor's man
>> 
>> type checking can be replace with typed slots (that end up using
>> 
>> isKindOf/isMemberOf: anyway).
>> 
>> If we agree on that we can remove many #isXXX methods.
>> 
>> Then there is some #isXXX methods that do not belong to Object (ex:
>> 
>> #isTransferable belongs to Morph) and others that can be removed just by
>> 
>> refactoring senders.
>> 
>> We can also move some of them to extension methods, that doesn't solve the
>> 
>> problem but it's a better packaging.
>> 
>> Anyway I don't want to rely on #is: method because it conflates a lot of
>> 
>> selectors into one.
>> 
>> 
>> yes. it is. so what is the problem?
>> 
>> 
>> The problem is that this #is: method is like aspirin: it makes the symptom
>> disappear but it doesn't cure the disease (if there is one).
>> 
> 
> Why? It was proposed how to deal with too many isXXXX methods in Object class.
> It is orthogonal to whether you should use isXXX pattern or not.
> Because each case should be dealt separately (and that's where you
> free to override #is: method
> to serve your special purpose).
> 
>> Are you sure you understand the purpose of #is: method?
>> 
>> 
>> No I didn't, but now that you revealed me the true purpose of #is:, I
>> finally reached enlightenment.
>> But apparently it's not the case of its own comment.
>> 
> Despite the method's comment contains my name, it is not under my authorship.

I never said it was.

> Look for mailing list archives to see what i proposed then, and if it
> different to what i saying now.

I believe you. The link to the archive is dead BTW.

> 
>> "A means for cleanly replacing all isXXX like methods.
>> Please use judiciously!
>> Suggested by Igor Stasenko at
>> 
>> all isXXX should be converted following the pattern
>> ColorForm>>isColorForm
>> ^ true
>> Object>>isColorForm
>> ^ false
>> is: aSymbol
>> ^ aSymbol = #ColorForm or: [ super is: aSymbol ]"
>> 
>> its purpose is for cases when you realy realy very very badly want to
>> add own isPlague to
>> Object protocol. In that case, you should use 'is: #plague'
>> because no new isXXXX methods should be added anymore.
>> The feast is over, and you should use #is: method. (or think how to
>> not use isXXX pattern at all).
>> 
>> 
>> TL;DR: I agree with Camillo :)
>> 
>> 
>> 
>> anyway, this topic has been discussed with enough hot air so far and no
>> 
>> progress,
>> 
>> 
>> which means it is absolutely not important. there are more urgent things to
>> 
>> done...
>> 
> 
> i could not care less.. Back in 2009 i just proposed this.
> Pharo people seems liked the idea and added this method into the image.
> That's how my name appeared there.
> And what i trying to (again as in 2009) articulate here, is how i see
> to use this method.
> But NOT whether it should stay in image or to be gone.
> 
> 
> 
> -- 
> Best regards,
> Igor Stasenko.
> 


Reply via email to