Brendan, Bradley and others - there's no need to search for a relatively uncommon use case for ordered maps indexed by keys - a far more common use case is enumerated data stored numerically, eg, marital status:
{ 2: "Married", 1: "Single", 5: "Divorced" } Likewise maps from numeric primary key values to display values for the records. So this use case comes up just about every time JavaScript is manipulating data coming from a SQL database - extremely common. On Mar 12, 2011, at 3:47 PM, Brendan Eich <bren...@mozilla.com> wrote: >> 3. Object has a useful behavior (similar to Java LinkedHashMap) instead of a >> surprising behavior (treating indices specially) > > The argument from Java leaves many cold. Argument from Java??? You wound me, sir! I would never argue from the viewpoint of such a verbose language and far prefer your JavaScript. To rephrase my argument so that it does not appear to be rooted in Java: take any library of collection classes from any language: C, C++, Python, perl, Ruby, Forth, whatever: do you ever find a collection class that is written to preserve order of string keys but not numeric keys? I don't know of one. So we're looking at standardizing a behavior for Object that no one has ever felt the need to implement as a reusable component. I would argue this means we're standardizing a very rare use case. >> This is aside from the performance > > Perhaps these people should rewrite their code, To be fair we're talking about a pretty tiny rewrite, in many cases a one-line change. I made the change to JQuery is about 5 lines, with no apparent functional difference in a medium-size app. If someone can point out a benchmark involving JQuery where Chrome appears to win due to dense Arrays, I can try it out, verify a performance difference if it's real, and submit the patch. After all it applies to current Firefox regardless of what is decided here. > but now we are in a perverse game: Chrome and possibly other browsers (I > haven't tested IE9) optimize their code better than other browsers. Glad to see the phrase "perverse game" here. I feel that the right behavior for the language is in danger of being sacrificed for an advantage in synthetic benchmarks that don't reflect the real-world use cases we should really be optimizing for. _______________________________________________ es-discuss mailing list es-discuss@mozilla.org https://mail.mozilla.org/listinfo/es-discuss