Alternative syntax for <|

Allen Wirfs-Brock allen at
Mon Nov 21 10:10:12 PST 2011

On Nov 19, 2011, at 11:38 AM, Dean Landolt wrote:

> On Sat, Nov 19, 2011 at 1:57 PM, Allen Wirfs-Brock <allen at> 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 {...
      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.


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <>

More information about the es-discuss mailing list