React: Another Level of Indirection
I've been playing with Facebook's React to make an internal interactive resource scheduling system for our company.  So far I think I'm getting it... and am thrilled with how it works.<p>React eschews the attempt to split the View / ModelView that are the hallmark of most full-service frameworks. Instead of this separation, React applications are built by defining reusable, nested components, each having a render() method that mixes binding and logic to build sub-parts of a web page using their custom DOM.  Each component has an internal mutable state and a set of read-only properties it gets from its parent context. In React, "data binding" is just part of rendering.<p>Since React owns the DOM, it's incompatible with JQuery; or rather, if you use JQuery, you could do it in a leaf node and manage the boundary carefully.  React tracks things by using a hierarchical identifier, each key unique within each level of the structure.  It then has a predictable/fast algorithem for detecting changes and updating the DOM.  Unless you provide your own component keys (used to build the DOM id) all the way down, you need to use CSS classes (rather than IDs).<p>Finally, I'd say, React really seems like a library -- and one that has a low API to functionality ratio.  That is, it really does something substantial with relatively few things you need to learn.  If you have your own in-house framework, it might be something you could weave in gradually rather than do a wholesale adoption of a larger (measured via API surface) framework.