Agreed, another aspect that I never understood, and was a problem with Angular 
1.0 bindings. At least when doing it in-line, bindings don’t introduce a new 
flow compared to what a developer’s custom equivalent code would do.

Benoit

> On Nov 2, 2015, at 11:35 AM, Brian Chin <[email protected]> wrote:
> 
> Regarding the Polymer 1.0 situation, as a client the new system seems to be 
> simpler. The core aspect is that now when you modify a property, the 
> resulting changes propagate instantly. O.o required update callbacks to be 
> executed on a new microtask after the associated field/item was modified. In 
> my experience, the instant propagation is easier to reason about for the end 
> user.
> 
> On Mon, Nov 2, 2015 at 11:31 AM, Benoit Marchant <[email protected] 
> <mailto:[email protected]>> wrote:
> Hi Adam,
> 
> Just sharing my $0.02 : I implemented a two-way binding system in my first 
> JavaScript framework at Apple in 2007, designed as a layer on top of a 
> property change observing API, like in Cocoa, and that’s still our design in 
> Montage today. I’ve never felt the need nor understood why observing changes 
> on a whole object were useful for bindings, and without measuring, I was 
> concerned (maybe wrongly) by the performance overhead of doing so.
> 
> Thanks for the update.
> 
> Benoit
> 
>> On Nov 2, 2015, at 10:27 AM, Adam Klein <[email protected] 
>> <mailto:[email protected]>> wrote:
>> 
>> Over three years ago, Rafael Weinstein, Erik Arvidsson, and I set out to 
>> design and implement what we believed to be the primitive underlying the 
>> data-binding system of MDV ("model-driven views"). We prototyped an 
>> implementation in a branch of V8, then got agreement from the V8 team to 
>> build a real version upstream, while pushing Object.observe ("O.o") as a 
>> part of the upcoming ES7 standard and working with the Polymer team to build 
>> their data-binding system on top of O.o.
>> 
>> Three years later, the world has changed in a variety of ways. While other 
>> data-binding frameworks (such as Ember and Angular) showed interest, it was 
>> difficult to see how they could evolve their existing model to match that of 
>> O.o. Polymer rewrote from the ground up for its 1.0 release, and in that 
>> rebuilding did not utilize O.o. And React's processing model, which tries to 
>> avoid the mutable state inherent in data-binding systems, has become quite 
>> popular on the web.
>> 
>> After much discussion with the parties involved, I plan to withdraw the 
>> Object.observe proposal from TC39 (where it currently sits at stage 2 in the 
>> ES spec process), and hope to remove support from V8 by the end of the year 
>> (the feature is used on 0.0169% of Chrome pageviews, according to 
>> chromestatus.com <http://chromestatus.com/>).
>> 
>> For developers who have been experimenting with O.o and are seeking a 
>> transition path, consider using a polyfill such as 
>> https://github.com/MaxArt2501/object-observe 
>> <https://github.com/MaxArt2501/object-observe> or a wrapper library like 
>> https://github.com/polymer/observe-js 
>> <https://github.com/polymer/observe-js>.
>> 
>> - Adam
>> _______________________________________________
>> es-discuss mailing list
>> [email protected] <mailto:[email protected]>
>> https://mail.mozilla.org/listinfo/es-discuss 
>> <https://mail.mozilla.org/listinfo/es-discuss>
> 
> 
> 
> 
> 
> _______________________________________________
> es-discuss mailing list
> [email protected] <mailto:[email protected]>
> https://mail.mozilla.org/listinfo/es-discuss 
> <https://mail.mozilla.org/listinfo/es-discuss>
> 
> 

_______________________________________________
es-discuss mailing list
[email protected]
https://mail.mozilla.org/listinfo/es-discuss

Reply via email to