You don't have to go that far down the Backbone road to get performance that rivals other frameworks is the point.
All this comes down to is how do you update the DOM when data changes. React nicely packages up that functionality for you, but in a huge dependency and in a fairly opinionated framework.
For a lot of developers, the flexibility of Backbone is worth the incurred cost of having to manually create listeners / render actions for data updates.
The goal of writing software isn't performance, though. It's a feature.
"For a lot of developers, the flexibility of Backbone is worth the incurred cost..."
Ugh. I could not disagree more. The "flexibility" that Backbone provides in allowing you to write manual DOM updates after an initial render is easily it's biggest down-side. This Backbone pattern to rendering data treats every data and state change as a 1-off situation after the initial render. Painful. "Flexibility"
> The goal of writing software isn't performance, though. It's a feature.
Agreed. No customer/user will ever come to you and say "I want you to build something, and I don't care what it does at all. I just want it to be fast." Performance isn't the raison d'etre for a product/app, functionality is. Now, they might say "I want it to do X, but it has to be fast," and in those cases having something fast that sucks is still worse than having something 20% slower that doesn't suck.
>The "flexibility" that Backbone provides in allowing you to write manual DOM updates after an initial render is easily it's biggest down-side. This Backbone pattern to rendering data treats every data and state change as a 1-off situation after the initial render. Painful. "Flexibility"
Exactly. Speaking from my employer's experience (we went Backbone -> Angular), Backbone is flexible in the same way that having four tires instead of a car is flexible: you can do anything you want with those four tires! It just takes a lot of really arduous work duplicating the same things that other people have already built and refined before you have something useful. But hey, four tires weigh less than a car does!
All this comes down to is how do you update the DOM when data changes. React nicely packages up that functionality for you, but in a huge dependency and in a fairly opinionated framework.
For a lot of developers, the flexibility of Backbone is worth the incurred cost of having to manually create listeners / render actions for data updates.