Direct proxies update

Brendan Eich brendan at
Sun Nov 27 23:47:43 PST 2011

On Nov 26, 2011, at 3:55 AM, David Bruant wrote:

> Le 26/11/2011 01:52, David Bruant a écrit :
>> Le 24/11/2011 22:29, Tom Van Cutsem a écrit :
>>> 2011/11/24 Allen Wirfs-Brock <allen at>
>>> At the core is a root question whether we want to expose a functional or object-oriented API for reflection functionality.
>>>  (...)
> I realize what that sentence meant yesterday, very late. And I realized also that all what Tom said was legitimate. A Mirror style API ("an object-oriented API") can be built on top of the Reflect API ("a functional API" as I understand it). The opposite it true, but comes with an overhead. Maybe in the future, it will be possible to optimize expressions like "Mirror.on(object).has('bla')" (used to implement Reflect.has('bla') if the Mirror style API is used), but it will always require some additional analysis. The opposite is not true.
> Consequently, regarding the built-in implementation, I would favor a functional API as well, unless the mirror API has advantages I am oblivious to.

I'm with you. JS has first class functions *and* objects, it is not an OOP-only or OOP-first language. The (dead? nearly) hand of Java weighed heavily on some parts, and methods make sense in many cases, but the cost of temporary objects shouldn't be imposed if a functional API at the lowest level suffices.

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

More information about the es-discuss mailing list