Dear people who know both Angular.js and React: which one is easier to get started with and build a moderately complicated application with, let's say a to do list app with user accounts?
The biggest challenges you'll face with React are:
The practical aspect of building components is straightforward, and arguably the easiest thing to pick up with React. The rest, unfortunately, is a bit chaotic.
When Backbone apps were at their peak, many dev had issues figuring out where to put all the puzzle pieces. Oftentimes, it led you to make your own framework (I believe Rdio did this for their apps--at Trunk Club we used one that sat atop Backbone called Chaplin). But even then, you often ran into the paralysis that comes with having a feature/application to build and not knowing where to insert the new pieces.
This is sort of where the React community is right now. There are some great patterns and libraries out there, and a great deal of smart developers working away to make the experience even better. Simultaneously, we're watching this happen in real-time. It's exciting, but scary for a company consuming the library to support & trust.
Similarly with choosing appropriate tooling, you are left to your own devices. This is unfortunate, because React effectively needs you to inject the Babel transpolar into your build process (not only that, but you need a build process!). Now, just like Backbone, you can make your own meta-framework that sits atop the current suite of in-fashion flashy tooling, but that is entirely at your own risk, and oftentimes an activity that a product manager is not going to allot time for you to handle.
I'm conflicted--I'm incredibly productive with React (more so than I was when working in Backbone) and really enjoy working with it on a day-to-day basis. But I think there's problems around abstraction & tooling that Ember and Angular handle with greater ease. At the end of the day, that would likely matter more if you are on a larger team. And especially if you are working for a company that expects reliability, features out-of-the-box, and strong community support, a custom-baked React solution is likely not your best bet.
While building mobile pplications, it's likely to look closer to React, since it combines the most effective tools and methods of present-day outstanding libraries and frameworks. https://erminesoft.com/what-are-the-pros-and-cons-of-angularjs-vs-reactjs/
None of them
2016 AngularJS VS. ReactJS Survey Results: http://blog.testproject.io/2016/09/01/front-end-development-unit-test-automation-trends2/
To solve this problem read new article of Cleveroad Inc. called "ReactJS vs AngularJS 2 ultimate performance research 2017" https://www.cleveroad.com/blog/react-vs-angular-ultimate-performance-research-2017
How about no frameworks and go pure JS? You have to have a good reason to use either of these in production because of the effort learning their quirks,
Going pure JS is getting better (ecma2015) for bigger applications. Libraries are usually more important IHO eg. Lodash, underscore and or jQuery.
Just had a quick look and closed https://html5sit.es/ for one reason, too many pop-ups/modals. Maybe the framework isn't the problem here, it could be UX needs a little help?
I 100% disagree that "pure JS" is a scalable way to build a web application. We tried that for a while and applications would end up an unstructured mess of code soup.
Ultimately, making something scalable will mean using SOME sort of design pattern—be it MV*, FLUX or something else. But thousands of smart people have already spent hundreds of thousands of hours thinking about how to best solve these problems, and deal with all the corner cases, and the result is frameworks like React and Angular… why reinvent this particular wheel?
Don't get me wrong, React and Angular are great ( React I absolutely love atm ). Trying to pick a framework without any plan isn't a good thing. Asking "React or Angular" is like asking "Photoshop or illustrator". Choose the tool/framework that will work with your project.
Also I do think ES6 is way better for larger projects then ES5. The new module system makes like so much easier. Just sayin'.
Based on the requirements Anselm Urban states in his "list app with user accounts", it doesn't scream NEED FRAMEWORK! to me. VanillaJS would do just great in this instance. He will need to write a little more code but wont have a heavy framework tying down his application.
That's fair. They're all just tools, and they definitely have their appropriate uses. ES6 (and ES7!) are both really exciting.
I'd still be cautious about starting without some sort of structure because if the requirements ever change and the app needs to expand, it'll quickly become messy and a refactor/rewrite will take a lot more work.
The key is the structure and use of design patterns, not the framework—but if the person implementing it is totally confident they can write that from scratch, they're probably not asking me whether they should pick React or Angular :) There are so many frameworks that give you the bare minimum that I'd still advise they use one.
Founder of https://qwilr.com here - where our core product is all built on Angular. Its actually a really tricky time for working out where to invest learning energy, with Angular 2 being so totally backwards incompatible with Angular 1 (which we use at Qwilr).
React, as a number of folks have noted, is in many ways simpler. The surface area of the API is much smaller, it just deals with the "view" bit. This is both blessing and curse, depending on how beginner / advanced you are. If you're just getting started React may be frustrating, because you'll keep having to search for a library or utility that helps achieve some standard single-page-web-app objective (i.e. routing etc). On the other hand, this small area of concern can be a very desirable as a more advanced developer, since you can set up your application structure as you see fit (using whichever libraries and utilities you see fit).
If I had to take a punt, I'd say the React, or React-like, libraries will probably win out in the end. That being said, with some years under my belt with Angular working on a very large and complex app, I'm now very productive with Angular - but its easier to get yourself into a mess on a larger scale app with Angular than with React.
But in the end, learning either one will be a huge asset as a web-developer, and they've both got very large and very active communities.
"With that in mind, it appears that Angular and React are by no means competing for the top-spot of being the best all around front-end framework. Instead, they can be used together to create astonishingly fast web and mobile applications."
This couldn't be further from the truth. I don't know any developers who would recommend using Angular and React together.
As far as I can remember, a lot of Angular+React projects/examples popped up from Angular folks that wanted to slowly transition their projects away from being so intimately tied to Angular (e.g. using React as the base component while still routing + fetching with Angular). Whether or not they're practical? No idea.
Client payload for that would be massive. :|
Who needs it? The entire world is on 4G/LTE :D
One of the biggest benefits with React is that it easily attaches to existing frameworks. Comes as no surprise, I think, that React comes from Facebook which was mostly built on PHP.