> Every time I finish up a React component, I'm blown away by how much simpler (and shorter) the code is compared to a traditional Backbone view — particularly when multiple subviews are involved.
Have you considered that this is now (presumably) your second time implementing this code, and you get to implement it in one shot, as opposed to (presumably) piecemeal development and feature additions that happen as part of organic feature growth.
I suspect that if you reimplemented your backbone stuff again in backbone, you would find the code to be better/more readable/shorter/etc.
That isn't to take anything away from react(I haven't used react or backbone in my life), but you should keep that potential bias in mind when comparing frameworks using "porting existing code to new framework" methodology
Like mrcwinn, I recently switched from Backbone to React, and my experience mirrors his.
I have implemented Backbone views many enough times to know how to do it right; I am in no doubt whatsoever that the improvements that come from reimplementing in React are not thanks to any knowledge gained from the first implementation but rather, come from React's design itself, especially three three aspects in how React does things differently from Backbone:
* The method of rendering everything from scratch every time, through the virtual DOM;
* The nested component support; and
* The explicit state management.
In addition I would give "ability to add event handlers directly to elements" an honourable mention. (Automatic binding of "this" to component methods is also a lifesaver, but probably not dependent on React's design.)
For what it's worth my experience mirrors the OPs, even when writing new functionality in React. The use of components really makes composing functionality and breaking problems down really easy. Backbone doesn't give you the structure to solve this problem easily.
Still <3 backbone, but React is a really great solution to the view layer, which is a problem that backbone doesn't even really try to address.
Have you considered that this is now (presumably) your second time implementing this code, and you get to implement it in one shot, as opposed to (presumably) piecemeal development and feature additions that happen as part of organic feature growth.
I suspect that if you reimplemented your backbone stuff again in backbone, you would find the code to be better/more readable/shorter/etc.
That isn't to take anything away from react(I haven't used react or backbone in my life), but you should keep that potential bias in mind when comparing frameworks using "porting existing code to new framework" methodology