Consistency in The Negative Result Values Through Expansion of null's Role

Andreas Rossberg rossberg at google.com
Thu Aug 16 02:24:58 PDT 2012


On 16 August 2012 00:35, Rick Waldron <waldron.rick at gmail.com> wrote:
> On Wed, Aug 15, 2012 at 6:02 PM, Erik Reppen <erik.reppen at gmail.com> wrote:
>>
>> This topic has probably been beaten to death years before I was even aware
>> of es-discuss but it continues to get mentioned occasionally as a point of
>> pain so I thought I'd see if I couldn't attempt to hatch a conversation and
>> maybe understand the design concerns better than I likely do now.
>>
>>
>> Consistent Type Return for Pass and Fail?
>>
>> The principle of consistent type-return has occasionally skewered me as
>> somebody who came to non-amateur levels of understanding code primarily
>> through JavaScript. I can see the value in maintaining consistent types for
>> positive results but not so much for indicators that you didn't get anything
>> useful. For instance:
>>
>> * [0,1].indexOf('wombat'); //returns an index on success or  -1 to
>> indicate failure. -1 passed on to a lot of other array methods of course,
>> indicates the last element. If you'd asked me the day I made that mistake I
>> could have told you indexOf probably returns -1 on failure to find something
>> but it didn't occur to me in the moment.
>
> It would be far worse to have a different type of value as a return, right?

Actually, no. It is far better to have something that produces failure
as immediately and as reliably as possible when used improperly.
Sentinel values are a prominent anti-pattern.

However, I agree that there is no chance of fixing that for existing libraries.

/Andreas


More information about the es-discuss mailing list