Last modified: February 20, 2018
With the release of Angular 2 came a new CLI for easily generating Angular projects and components. This drastically improves development time as simple commands will auto generate components, services, etc. along with supporting CSS, HTML, and test files. This minimizes the time you have to spend setting things up and allows you to focus solely on building out different features.
You can also easily build, run, and test your application using the CLI. Not only is the CLI a huge time saver, it also facilitates a consistent implementation as the necessary files for different components are automatically generated and organized for you.
Angular is a highly opinionated framework that implements a Model, View, Controller (MVC) design pattern. This results in a clear separation of concerns as underlying data models and state management aren't mixed in with templates or views.
The MVC pattern is not a new concept introduced with Angular. Popular frameworks like Spring, Ruby on Rails, etc. also subscribe to the MVC pattern. This means developers coming from different languages/backgrounds can more easily acclimate to the Angular ecosystem. While competing libraries like React and Vue have been popularized for mixing view logic with state management, it can make for a steeper learning curve.
This MVC approach feeds into another key benefit of Angular: consistency. By emphasizing an MVC architecture, Angular forces developers to conform to a certain way of implementing things.
This may sound bad, but it results in a more consistent development environment across different teams. New developers can quickly jump into an Angular code base and know it will have a similar structure. Also remember that Angular is a framework, meaning it has a lot more features internally available than other libraries. For example, libraries like Vue and React require the developer to use third party libraries for async http requests (axios). Angular has a built in http service that handles this for you. This reduces the variability in different implementations and keeps things consistent.
With Angular, all components and services are set up the same way. This results in a consistent, modular approach that is easier to maintain.
Ever since the Angular 2 rewrite, Angular's performance has been comparable to competing libraries like React and Vue. Specifically, Angular's change detection mechanism has eliminated the performance issues experienced with the original AngularJS digest cycle. Angular now implements a unidirectional data flow similar to React that optimizes DOM changes based on altering only what needs to be changed (versus rerendering the entire DOM tree). For more on Angular 2 performance, check out our article on Angular 2 change detection.
Angular is a great choice for modern front-end web apps. It's CLI interface makes generating new projects and components a breeze. It's MVC approach results in a more consistent development environment emphasizing modularity. It's revived change detection mechanism makes Angular's performance comparable to competing libraries like React. If your looking for a highly opinionated front-end framework with a strong community backing it, then Angular may be the platform for you.