On Nov 21, 2011, at 5:55 PM, Irakli Gozalishvili wrote:
> Recently Claus Reinke proposed some alternative that I think feels is so much
> more natural and simpler than <| or beget:
>
> Instead of this:
>
> foo <| { bar: 'bar' }
>
> prototype can be a special property:
>
> { prototype: foo, bar: 'bar' }
Two problems:
1. Does not work for array, function, and regexp literal right-hand sides.
2. Preempts a property name. We cannot preempt 'prototype', and '__proto__' was
already tried (it sucks due to preemption combined with magic meta-programming
power in what looks like just another property).
These really won't cut it, and I think the reasons were covered well by Allen
already.
/be
>
> simple and easy, of course it can have a different name from `prototype`.
> Also, this special `prototype` property can be non-configurable, non-writable
> and non-enumerable falling back to Object.prototype if not provided. Also
> Object.create(null, { foo: { value: 'foo' } }) will become as simple as {
> prototype: null, foo: 'foo' }.
>
> Regards
> --
> Irakli Gozalishvili
> Web: http://www.jeditoolkit.com/
> Address: 29 Rue Saint-Georges, 75009 Paris, France
>
> On Monday, 2011-11-21 at 10:10 , Allen Wirfs-Brock wrote:
>
>>
>> On Nov 19, 2011, at 11:38 AM, Dean Landolt wrote:
>>
>>>
>>>
>>> On Sat, Nov 19, 2011 at 1:57 PM, Allen Wirfs-Brock <[email protected]>
>>> wrote:
>>>>
>>>> On Nov 15, 2011, at 10:27 PM, Russell Leggett wrote:
>>>>
>>>> >
>>>> >
>>>> > but given the overall disapproval of the exact syntax of the <|
>>>> > operator, I think its at least a little more obvious what is going on.
>>>> >
>>>>
>>>> Sorry to be coming late to this thread.
>>>>
>>>> I think the above statement is a false characterization to use to start
>>>> this discussion. There are some who disapprove of <| or other similar
>>>> special character formulation of this operator. There are other who like
>>>> it a lot. Certainly there isn't "overall" disapproval. However, we can't
>>>> really even tell whether there is majority (of what population??) approval
>>>> or disapproval. At best, all you can legitimately say is that there is
>>>> not universal approval of the <| token.
>>>
>>>
>>> I was under the impression that TC39 generally operates by consensus. As
>>> you note, there are some who disapprove -- if some is a non-inconsequential
>>> number wouldn't this constitute overall disapproval?
>>
>> It's true that there isn't consensus within TC39 on the "<|" syntax.
>> However, there also isn't consensus on any other specific token or keyword
>> either. At the May TC39 meeting there was consensus on "advancing to
>> proposal status" the semantic capabilities that were in the enhanced object
>> literal strawman. At the same time it was noted that there wasn't agreement
>> on syntax.
>>
>> Lack of consensus does not mean "overall disapproval". It means there isn't
>> overall approval. Further consensus building is still required it might be
>> around the pending proposal or it might be around something else.
>>
>> However, TC39 wan't even mentioned in the statement I took exception to. It
>> seemed to make a broader subjective characterization.
>>
>>>
>>> FWIW I'm indifferent to the syntax, but it reads just fine to me. Still,
>>> I'm sure there's something better lurking. Especially if it's true that
>>> since it's infix it could be nearly anything. IMHO "begets" is pretty
>>> winful.
>>
>> I find keywords such as "begets" a bit more jarring when used as
>> compositional primitives.
>>
>> To me, "beget" reads fine in isolation such as
>> let bob = tom beget {name: 'Robert');
>>
>> But when used in combination you get clashes of the underlying natural
>> language meaning of the keywords. Compare
>> let Point = class AbstractPoint begets {...
>> to
>> let Point = class AbstractPoint <| {...
>>
>> The first form just doesn't "read" quite right to me. For the second form,
>> I don't necessarily internally vocalize a natural language word for <|.
>>
>> My personal preference is for a special characters based operator based
>> token but it doesn't have to be <|. I've frequently suggested <: as another
>> alternative. I'm less happy with a keyword operator token but I don't
>> reject that alternative and "beget" may well be the best of those.
>>
>> However, we have to decide on something or we just won't have this
>> functionality at all.
>>
>> Consensus doesn't mean that everybody likes the solution. It just means
>> that everybody is willing to accept it. What we really need to do is build
>> such a consensus around one of the alternatives.
>>
>> Allen
>>
>> _______________________________________________
>> es-discuss mailing list
>> [email protected]
>> https://mail.mozilla.org/listinfo/es-discuss
>
> _______________________________________________
> es-discuss mailing list
> [email protected]
> https://mail.mozilla.org/listinfo/es-discuss
_______________________________________________
es-discuss mailing list
[email protected]
https://mail.mozilla.org/listinfo/es-discuss