On 18/03/11 20:05, Brendan Eich wrote:
On Mar 18, 2011, at 9:20 AM, Oliver Hunt wrote:

I believe the current hope is to kill off __proto__ as quickly as is possible.  
I'm not taking a position in this argument, this is just my current 
understanding.

This makes it sound quick. There's no way to guarantee that.

Also, to kill it we need replacements for the valid use-cases, assuming we agree on those. These 
replacements need to have the right "fit" as well as "form", i.e., they must be 
usable.

Here's my framework for thinking about deprecation and obsolescence of 
__proto__:

1. A "get" equivalent: Object.getPrototypeOf in ES5.

2. A "define" (initialize on a newborn and otherwise inaccessible object) 
equivalent: see Object.create, but people criticize it on usability grounds. So, see 
Allen's mail and the strawman he is championing:

http://wiki.ecmascript.org/doku.php?id=strawman:obj_initialiser_meta

3. Ship in multiple browsers, so library authors can detect and start to use 
them.

4. Wait a decent interval to evaluate usability.

5. Announce removal of __proto__ in subsequent releases of those multiple 
browsers.

6. Evaluate market share of downrev browsers as those release dates approach.

7. If all looks good, remove __proto__, done.

8. Else goto one of the earlier steps, possibly adjusting specs and impls based 
on feedback and uptake.

This is *not* going to be "quick".

Is there much to be gained by removing __proto__ entirely? IIRC the original proposal was just to change it to being [[Writeable]]: false. Sure, still having it around isn't as nice as removing it entirely, but the cost of removing it would appear to be fairly high (it's fairly widely used in a read-only sense, and getting all that content to change is a lot of work for IMO not that much gain).

--
Geoffrey Sneddon — Opera Software
<http://gsnedders.com>
<http://opera.com>
_______________________________________________
es-discuss mailing list
[email protected]
https://mail.mozilla.org/listinfo/es-discuss

Reply via email to