Es-discuss - several decimal discussions
rubys at intertwingly.net
Sat Aug 23 11:30:02 PDT 2008
ihab.awad at gmail.com wrote:
> On Sat, Aug 23, 2008 at 10:04 AM, Sam Ruby <rubys at intertwingly.net> wrote:
>> Decimal implemented as a library would be sufficient for a 3.1
>> release. The problem is an interoperable definition for what infix
>> operators is required for completeness. Taking no other action, the
>> default behavior for the result of a "+" operator given a Number and a
>> library provided Decimal would be to convert both to string
>> representations and concatenate the results.
> In other words, the same as the "+" operator given a Number and a
> library provided Employee, Document, PopupWidget, ..., or any other
> user defined type.
Having Decimal.parse(2) + 3 produce "23" is not what I would call "fail
fast", as that is a term I would typically use for throwing an exception
or the like.
>> This was discussed at the last ECMA TC39 meeting in Oslo, and was
>> found to be unusable and would create a backwards compatibility issue
>> for Harmony.
> With respect, I wonder what these would be. It seems that the
> fail-fast behavior in this case is useful for (as I pointed out) stuff
> like helping establish Sarbanes-Oxley compliance. I understand that
> such requirements are why we need decimal arithmetic in the first
At most, Sarbanes-Oxley might be an example of one source for requirements.
>> ... spec'ing the operators would not be all that difficult. ... there
>> are some usability concerns relating to mixed mode operations
>> that we need to work through.
> It is precisely these concerns that cause me to wonder if there's a
> foundational issue here. Are decimals indeed a different enough beast,
> and the pitfalls subtle enough (even if they can be specified
> completely), that mixed mode should simply not be supported (i.e.,
> made to fail-fast in some backwards compatible way)?
I don't believe the concerns are that decimals are a "same enough" or a
"different enough beast", but rather that "fail fast" is not the type of
behavior one would expect from ES for numeric operations. And to be
clear, this is less of a concern with arithmetic operators than with
relational operators. It would not be wise for equality operators, in
particular, to start throwing exceptions.
> And if mixed mode is not supported, does that mean the library
> approach is adequate?
- Sam Ruby
More information about the Es-discuss