You're not wrong in hating React, but it is a fad as much as no one wants to believe it. The reason I believe is because no matter how strong the framework, eventually it will be adopted (to some extent) into the native language (which is a good thing). Think about these frameworks:<p>- jQuery<p>- Coffeescript<p>- Backbone<p>at the time, if I had asked you if those were a fad, you'd think I was crazy. And yet, because of native language enhancements, none of those frameworks are really needed anymore. And I'm sure in 5 years React, Angular, Vue, Ember...you name it, will also likely be a thing of the past.<p>The important thing that I've learned in my (so far very short) career is that it's always best to know the language first, and the framework second. Frameworks come and go, but the language is permanent. By knowing the language really well, it's strengths and weaknesses, it enables you to determine when a framework is helpful...<i>and more importantly, when a framework is a hindrance</i>.<p>As an anecdotal example, I had a client that was using a React boilerplate on NPM to do a Foursquare API request. React is like, 50k lines uncompressed? To do <i>that</i>? I was able to replace it with 22 lines of vanilla JS. If you don't know the base language, it's often easier to simply think in the framework and create a bloated environment for very basic things rather than just use what the language gives you. It's faster, it's cleaner, it's more widely supported in browsers, has a larger community, and is more defensible to use the base language than a framework, until the framework does more work to help you than harm you.<p>So my advice would be, if you're thinking about using React or Angular, think about why you need it. Are you doing heavy lifting on the front-end, like interactive graphics or a dashboard? Sure, those are probably pretty good choices. If not, and you're simply trying to make the front-end more RESTful, with some easier reasoning about your applications, you could probably get away with a lighter framework like Mithril, Elm, or another lightweight framework.