<html><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div><div>On Aug 23, 2008, at 2:07 AM, Maciej Stachowiak wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; min-height: 14px; "><span class="Apple-style-span" style="-webkit-text-stroke-width: -1; ">To my view, Decimal is much less important overall than, say,  </span></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">ByteArray or some other effective way to represent binary data, which <span class="Apple-converted-space"> </span></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">is not in ES3.1 and was even rejected from ES4 (at least as then <span class="Apple-converted-space"> </span></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">spec'd).</div></blockquote><div><br></div>Just for the record, ByteArray was cut in favor of Vector.&lt;byte>, which yielded to Vector.&lt;int> with the loss of byte, which yielded with the loss of int (wait for it ;-)) to the return of ByteVector (cuts were being made to the troublesome machine integer types, but a byte-vector type was part of the plan all along). Parameterized types were ultimately not required; we were back to a nominal type ByteVector that could be used without new syntax. See</div><div><br></div><div><a href="http://wiki.ecmascript.org/doku.php?id=meetings:minutes_nov_08_2007#minutes">http://wiki.ecmascript.org/doku.php?id=meetings:minutes_nov_08_2007#minutes</a></div><div><a href="http://bugs.ecmascript.org/ticket/211">http://bugs.ecmascript.org/ticket/211</a></div><div><a href="http://bugs.ecmascript.org/ticket/234">http://bugs.ecmascript.org/ticket/234</a></div><div><br></div><div>Anyway, I agree ByteArray or ByteVector is important. I wouldn't put it in a lifeboat-ethics contest with Decimal (one of the two must be tossed over) for ES-Harmony, but for ES3.1 there is no contest.</div><div><br></div><div>So I agree that Decimal is out of scope for ES3.1, and I've said so often, most recently in Oslo. But the hardball being played to get *and* let it into ES3.1 has been an obstacle to frank exchange of opinions among all of the committee members. IMHO.</div><div><br></div><div><br><blockquote type="cite"><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "> There's a lot more popular Web applications that would be <span class="Apple-converted-space"> </span></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">interested in manipulating binary data efficiently than care about <span class="Apple-converted-space"> </span></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">calculating prices.</div></blockquote><div><br></div>The ones that calculate prices apparently use pennies and round carefully when multiplying by things like sales tax rates.</div><div><br></div><div><br><blockquote type="cite"><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; min-height: 14px; "><span class="Apple-style-span" style="-webkit-text-stroke-width: -1; ">Finally, while Decimal seems like it will be useful to knowledgeable  </span></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">developers dealing with financial data, it seems likely to confuse the <span class="Apple-converted-space"> </span></div><div style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">average developer more than it will help.</div></blockquote><div><br></div>That is unclear. A "use decimal" pragma that does not allow implicit conversions from binary64 to decimal128 might work well for most users; they'd never notice the lack of speed or the greater precision, and they would definitely like the powers-of-five expressiveness (<a href="https://bugzilla.mozilla.org/show_bug.cgi?id=5856">https://bugzilla.mozilla.org/show_bug.cgi?id=5856</a> is still seeing duplicate reports; bloggers are still blaming one company or another for "math being broken" in JS). But there are too many variables to be sure of what would work.</div><div><br></div><div>I wrote recently that the best way to get Decimal done is to implement it as an extension, with operators, I hope with a safe "use decimal" pragma, in popular open source browsers. Then and only then might we get some kind of usability feedback. We desperately need experiments, not guesses or committee prescriptions<i>.</i></div><div><br></div><div>Pushing a <i>de jure</i> spec first, or at the same time as prototype implementations, and on a short deadline (next spring), risks making ES3.1 late (again), or -- if the spec makes it by next spring in advance of usability feedback -- risks premature standardization (again!).</div><div><br></div><div>/be</div></body></html>