Dean Landolt (2013-07-29T22:49:53.000Z)
On Mon, Jul 29, 2013 at 4:29 PM, Brendan Eich <brendan at mozilla.com> wrote:

> Brandon Benvie wrote:
>
>> On 7/29/2013 1:09 PM, Brendan Eich wrote:
>>
>>> Brandon Benvie wrote:
>>>
>>>> On 7/29/2013 11:33 AM, Kevin Smith wrote:
>>>>
>>>>> The value of uniqueness lies in the fact that you can design protocols
>>>>> without having to globally coordinate on property or method names.  (E.g.
>>>>> iterator)
>>>>>
>>>>
>>>> I think {keys, maps, values} (and the pivot to using Symbols and
>>>> functions for them)
>>>>
>>>
>>> BTW that was just one thought (from me), and TC39 went another way to
>>> avoid the 'values'/with incompatibility found via Ext.js. (See the meeting
>>> notes for the first day, about the @unscopeable list.)
>>>
>>>   Ah right, forgot about that. Another example (in the wild) is
>> SpiderMonkey's use of "iterator" for the iteration protocol.
>>
>
> In ES4 days it was __iterator__, after dunder-iter in Python.
>
> More recently, Jason implemented 'iterator' for two reasons, I think: 1,
> lack of symbol spec of implementation as prerequisite; 2, belief that a
> public name was better. Jason argued that case here, but I don't think he
> prevailed (Dean Landolt disagreed).
>


FWIW Jason convinced me in the end -- I was subtly misinterpreting the
spec. I still believe symbols (or something like them) are really
important, just not necessarily for iterators.

I'd also like to echo the sentiment in favor of private symbols. Unique
symbols really don't offer much over GUIDs, and don't make a whole lot of
sense in a world without private symbols. And in a world with private
symbols unique symbols aren't strictly necessary.

I don't fully grok the relationships strawman yet but it looks really
promising. I wonder what a *maximally minimal* version of it might look
like -- if it could be stripped down enough to just accommodate the needs
of the es6 spec. while remaining palatable and leaving the door to private
symbols open? Anything to avoid GUIDs. I'd bet most everyone would concede
they're are a smell, an es-regret waiting to happen :)

[snipped]
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.mozilla.org/pipermail/es-discuss/attachments/20130729/631419ef/attachment.html>
domenic at domenicdenicola.com (2013-08-02T20:07:32.903Z)
On Mon, Jul 29, 2013 at 4:29 PM, Brendan Eich <brendan at mozilla.com> wrote:

> More recently, Jason implemented 'iterator' for two reasons, I think: 1,
> lack of symbol spec of implementation as prerequisite; 2, belief that a
> public name was better. Jason argued that case here, but I don't think he
> prevailed (Dean Landolt disagreed).


FWIW Jason convinced me in the end -- I was subtly misinterpreting the
spec. I still believe symbols (or something like them) are really
important, just not necessarily for iterators.

I'd also like to echo the sentiment in favor of private symbols. Unique
symbols really don't offer much over GUIDs, and don't make a whole lot of
sense in a world without private symbols. And in a world with private
symbols unique symbols aren't strictly necessary.

I don't fully grok the relationships strawman yet but it looks really
promising. I wonder what a *maximally minimal* version of it might look
like -- if it could be stripped down enough to just accommodate the needs
of the es6 spec. while remaining palatable and leaving the door to private
symbols open? Anything to avoid GUIDs. I'd bet most everyone would concede
they're are a smell, an es-regret waiting to happen :)