>> I think it helps if it reads well. For example:
>> 
>> const Employee = Person refinedBy { ... }
>> const Employee = Person subsuming { ... }
>> const Employee = Person parenting { ... }
>> const Employee = Person above { ... }
>> const Employee = Person before { ... }
> 
> Sorry, these are ghastly (it's almost Halloween, but c'mon).
> 
> I searched a bit and re-read Smalltalk, Self, Cecil, and Io docs to get a 
> handle on what <| does. It is not 'clone'. It ain't 'create' except in a 
> vacuous sense that's also already "taken" by ES5 Object.create. It isn't 
> "subsuming" in my view. "refinedBy" is closer but you'll get camelCaps 
> keywords into JS over my dead body!

    const Employee = Person refinedby { ... }
    const Employee = Person refby { ... }
    const Employee = Person by { ... }

(Precedence: instanceof)

> I landed on 'beget' because 'create' is close but vague yet poisoned, and we 
> need something pithy. Doug already employed it ages ago. Is there a reason 
> you don't like 'beget'?


Only one: It does not read like English (unless you read it like a command). 
How about:

    const Employee = Person begets {}

But I will be so glad to have this operator, I don’t mind too much about the 
actual name. I wouldn’t rule out "proto", yet, though. To be read as “is 
prototype of”.

I’m surprised that the anti-Grawlix faction is so passionate – using a < like 
operator for inheritance has a long tradition in theoretical computer science.

Adding a non-grawlix name to Object is a good argument against something 
grawlixy, though.

-- 
Dr. Axel Rauschmayer
a...@rauschma.de

home: rauschma.de
twitter: twitter.com/rauschma
blog: 2ality.com



_______________________________________________
es-discuss mailing list
es-discuss@mozilla.org
https://mail.mozilla.org/listinfo/es-discuss

Reply via email to