Is "isNil" really more readable than "== nil"?

imho yes... i find it more readable, more "smalltalkish" but the
conversation ended up being about performance rather than if it's more
readable or not so obviously there is a bigger issue :)

Francisco

On Mon, May 24, 2010 at 11:22 PM, Levente Uzonyi <le...@elte.hu> wrote:
> On Mon, 24 May 2010, John M McIntosh wrote:
>
>>
>> On 2010-05-24, at 1:47 PM, Levente Uzonyi wrote:
>>
>>> On Mon, 24 May 2010, Lukas Renggli wrote:
>>>
>>>>> IMHO 4 is the most readable and it is the fastest in Pharo/Squeak at
>>>>> the
>>>>> moment, so that should be preferred in core packages.
>>>>
>>>> It should not be preferred or changes unless you can prove a real
>>>> performance benefit. I still haven't seen a single realistic benchmark
>>>> with real code (from Pharo, Seaside, Pier, ...) where you can measure
>>>> a real difference between these 4 variants.
>>>
>>> Well, just replace all uses of == nil and #ifNil:, etc with isNil and
>>> isNil ifTrue: etc. Then get some benchmarks which you accept as realistic
>>> and run them in both images.
>>>
>>
>>
>> Well what is going on is that you are changing the
>> foo isNil ifTrue:
>> which is a message send for the isNil into a
>> foo == nil ifTrue:
>> which then does an object identity check in byte codes.
>>
>> Because messages sends are *slow* removing one from millions of executions
>> does improve things.
>>
>> However what be more clever is changing the compiler to optimize the use
>> of isNil so you maintain readability without a performance penalty.
>
> Is "isNil" really more readable than "== nil"?
>
>>
>> Also consider 'first' 'second'
>>
>> Well and the case of the simple accessor
>>
>> self foo ifTrue:[]
>> where
>> foo
>> ^foo
>
> Inlining more methods is a bad idea IMHO. It makes the compiler and the
> decompiler more complex. An inlining JIT is the real solution.
>
>
> Levente
>
>>
>>
>> --
>>
>> ===========================================================================
>> John M. McIntosh <john...@smalltalkconsulting.com>   Twitter:
>>  squeaker68882
>> Corporate Smalltalk Consulting Ltd.  http://www.smalltalkconsulting.com
>>
>> ===========================================================================
>>
>>
>>
>>
>>
>
> _______________________________________________
> Pharo-project mailing list
> Pharo-project@lists.gforge.inria.fr
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>

_______________________________________________
Pharo-project mailing list
Pharo-project@lists.gforge.inria.fr
http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project

Reply via email to