When Angular and React were first released, I remember how everyone was excited at how JavaScript was redefining what it meant to build an interactive lightweight website. People were also interested in which one would win outright... I mean... they are both basically the same... right?

I guess we can be forgiven for believing that in the early days, however now it's clear that this isn't the case. Sure, we can measure which one is used more, but this doesn't mean that they will be used for the same projects.

I believe both Angular and React have their place in today's ecosphere, and both of them are suited to different tasks.

React is a library that manages the 'View' part of an 'MV*' architecture. It provides tools which make it easier for the developer to create reusable user interfaces. The fact that it is a library that focuses on one thing makes it very lightweight, it only does one thing and one thing well. There are of course other libraries and frameworks that you can use in conjunction with the React library in order to create complete apps (many of which have great docs making the setup process straight forward), however, by itself, you can't do too much with just the basic React library.

Angular is a framework that provides everything you need in order to create a complete app. Because of this, it tends to be larger and has a steeper learning curve. Angular comes with tools (such as Routers and Services) that leads it to be opinionated about how you actually structure the app's architecture.

A feature of frameworks is that they (to a large degree) dictate how you actually set up the your app. They have predefined standards that should be followed. This can be both a good or bad thing (based on your circumstances). For large teams, this is mostly a good thing since everyone will be adhering to the same rules and jumping into a project should require less on-boarding. For smaller teams that don't necessarily want to know the 'Angular' way of doing things however, this approach could really slow down progress (you don't want to spend a week learning how Angular uses Services, Routers and Dependency Injection... you just want to call an API an receive a response).

So yes, both React and Angular definitely have their place and while at the time of writing this I'm pretty sure React is more popular (i.e. used in more projects), I think they are different enough to both co-exist and serve their different purposes (and, I guess, after having said all of that, a little bit of friendly competition never hurt anyone)!