+1

norbert

Am 18.07.2013 um 13:11 schrieb Nicolas Cellier 
<nicolas.cellier.aka.n...@gmail.com>:

> I'm sorry to endorse the role of naughty conservatism (probably a problem of 
> age), but introducing a touch of damping to slow the system down don't hurt.
> Anyway, any doer is responsible for his/her changes and can be prepared to 
> rants,
> Funnily I'm also being questionned in the same time for having changed ($a 
> to: $z) to return a String rather than an OrderedCollection in Squeak,
> We must accept that, every change is questionnable.
> Personnaly I try to rationalize rants, and rationalize changes, or at least 
> put them in a longer term perspective, but at the end, some changes must 
> always be done arbitrarily.
> 
> 
> 2013/7/18 Stéphane Ducasse <stephane.duca...@inria.fr>
> Hi nicolas 
> 
> I agree :)
> So we should find the right balance. 
> Stef
> 
> 
>> For FileSystem, there is a clear win, so I'd say the change is really worth.
>> 1) you add more capabilities
>> 2) more logical/convenient API
>> 3) more efficient implementation
>> 4) more scalable implementation
>> The optional compatibility layer you offered is the exact solution to the 
>> upgrade problem (you give a bit of time to maintainers)
>> I buy it.
>> 
>> For and:and:and: etc... I agree with deprecation because such selector adds 
>> near to null
>> (I personnally changed many senders in Squeak, so I'm totally biased here).
>> 
>> For isNotNil I'm not convinced at all.
>> To me, it's not much but noise.
>> There are currently 3 senders vs 890 for notNil. I imagine many more in many 
>> packages.
>> Think in mid/long term. What's your plans? Wait for the balance to slowly 
>> inverse? Rename all?
>> 
>> For notEmpty, it's worse: 6 implementors.
>> So what's the new contract? any new implementor of notEmpty shall also 
>> implement isNotEmpty?
>> Or isNotEmpty is implemented in term of notEmpty in Object?
>> Currently, 5 out of 6 implementors of notEmpty do not implement isNotEmpty 
>> and 1 out of 2 implementor of isNotEmpty does not implement notEmpty.
>> It's not just noise, it's currently a mess!
>> 
>> As for an automated rewrite rule, yes, this is some very usefull features 
>> for supporting such refactorings.
>> I'd say a pre-requisite.
>> But that force using several branches for cross version support, or worse, 
>> cross dialect support.
>> If all diffs are automated, that's ok, if some of the changes are manual, 
>> it's a pain (backport etc...)
>> 
>> 
>> 2013/7/17 Camillo Bruni <camillobr...@gmail.com>
>> there have been many similar decisions in the past,
>> I remember for instance the move from #and:and:and: or #or:or:or: which
>> weighs around the same as the #isNotNil.
>> 
>> FileSystem or Slots are even on a bigger scale.
>> 
>> Package maintenance in which sense, across different Pharo versions or 
>> different Smalltalk versions?
>> 
>> Between Pharo versions should be more or less ok, since such changes 
>> (#isNotNil and Co) usually come with a proper deprecation.
>> 
>> AFAIK there is someone working on detecting much more subtle changes in 
>> Pharo and provide lint rules on top. So I think we have to embrace changes.
>> 
>> On 2013-07-17, at 22:49, Nicolas Cellier 
>> <nicolas.cellier.aka.n...@gmail.com> wrote:
>> > I wonder what is the decision process behind such change.
>> > Do you put in balance what you gain and what you loose?
>> > To me gain is near zero and these little changes stacked together put a
>> > useless burden on package maintenance.
>> >
>> >
>> > 2013/7/17 Camillo Bruni <camillobr...@gmail.com>
>> >
>> >> On 2013-07-17, at 22:32, Nicolas Cellier <
>> >> nicolas.cellier.aka.n...@gmail.com> wrote:
>> >>> So you would be ready to change notNil -> isNotNil and become a bit more
>> >>> incompatible with the rest of the world?
>> >>
>> >> that method is already present in the image.
>> >>
>> >>> I understand that the pair isEmpty/isNotEmpty may seem a bit more
>> >>> homogeneous, but I see no other selector constructed with (isNot isnt)
>> >>> while I see many others where is is omitted.
>> >>> I wonder what this kind of change really serve...
>> >>
>> >> For me they are consistent with all the other is* methods out there
>> >> returning booleans.
>> 
>> 
>> 
> 
> 

Reply via email to