- is technology which was innovative 5 years ago
- is obsolete today because [web components] started to ship in major browsers
- solves problems nobody except facbook has ('serving highly dynamic content to billions of people')
- under constraints most web apps don't have ('legacy browser support matrix')
- assuming resources nobody of us have (last facebook dev count i remember was ~2k)
- doesn't have CSS scoping (about which you don't care, because CSS is "the designer's problem", right?)
- introduces its own file format (wtf, just use two different standard file formats like the rest of us)
- hard-couples controller and view (what could possibly go wrong, right?)
- centralizes stuff (instant spaghetti code – which is of course very powerful, like all centralized structures, not doubting that)
- don't even get me started on their own CSS syntax
it is probably awesome to build a prototype with React when you are dev pair. it is terrible for an existing app with a history or a team which actually has more roles than "developer".
as with any framework, the question is not so much how easy and fast you can make blinky blinky in the browser. the question is how easy it is to get your app out of that framework. or at all possible. like, ever.
declarative view rendering on model changes is totally the right way to go. let's do that with vanilla web. enterprises like facebook and google will always build their custom solutions. just because they open-source them and do a conf with youtube videos about it doesn't mean you should build production stuff with it!