On Sat, Feb 2, 2013 at 11:02 AM, Brendan Eich <bren...@mozilla.com> wrote: > David Bruant wrote: >> >> Interestingly, revocable proxies require their creator to think to the >> lifecycle of the object to the point where they know when the object >> shouldn't be used anymore by whoever they shared the proxy with. I feel this >> is the exact same reflections that is needed to understand when an object >> isn't needed anymore within a trust boundary... seriously questioning the >> need for weak references. > > > Sorry, but this is naive. Real systems such as COM, XPCOM, Java, and C# > support weak references for good reasons. One cannot do "data binding" > transparently without either making a leak or requiring manual dispose (or > polling hacks), precisely because the lifecycle of the model and view data > are not known to one another, and should not be coupled. > > See http://wiki.ecmascript.org/doku.php?id=strawman:weak_refs intro, on the > observer and publish-subscribe patterns.
This is exactly right. I'm preparing an implementation report on Object.observe for the next meeting, and in it I'll include findings from producing a general purpose observation library which uses Object.observe as a primitive and exposes the kind of semantics that databinding patterns are likely to need. Without WeakRefs, observation will require a dispose() step in order to allow garbage collection of observed objects, which is (obviously) very far from ideal. > > /be > > _______________________________________________ > es-discuss mailing list > es-discuss@mozilla.org > https://mail.mozilla.org/listinfo/es-discuss _______________________________________________ es-discuss mailing list es-discuss@mozilla.org https://mail.mozilla.org/listinfo/es-discuss