Recently, my colleague Wes Dollar explained the benefits of building an application using React. Now it’s my turn to discuss Angular, the other giant in the application platform space. As a developer, one of the biggest headaches I’ve encountered is going down a path and realizing you should’ve done something using a different approach. Every application I’ve ever worked on has at least a few things we wish we had done differently. That’s normal. But deciding on the tech stack for your application is arguably the biggest, most fundamental decision you’ll make when it comes to building an application, and one you absolutely must get right. So why should you use Angular instead of React? While the final decision rests solely with you and your team, here are a few of my favorite features of Angular.
Angular is a full-fledged framework
Out of the box, Angular has everything you need to build an enterprise-level web application without the need for additional libraries. Component-based routing, data-binding, API interaction, and dependency injection are just a few of the things that come with Angular that often need to be solved with additional libraries when using other tools such as React.
In the early days, when you were building a web application, you more often than not had to duplicate (and maintain) code if it needed to appear in multiple places or pages. This made even the simplest change tedious and time consuming as you would have to make the same change in several places. Angular uses a more modern modular approach. Angular modules are a collection of related and reusable components, services, directives, pipes, and more. Modules make organizing your code by functionality simple, leading to a cleaner codebase that’s easier to understand and maintain. For example, let’s say we have a dashboard page and an admin page. These would be great cases for feature modules. Modules can also be lazy loaded or even loaded in the background which reduces the user’s time to interaction (the amount of time before the user can use the app).
Consistency – there’s an Angular way of doing things
There are often several different ways of doing things in Angular, but there is usually a highly suggested way, especially when it comes to building components, modules, and services. Angular makes these suggestions in their style guide, which can be found in their documentation. This is extremely beneficial for larger teams because it shortens the onboarding process, reduces the time it takes to fully understand other developers’ code, and makes it easier to maintain a large codebase. Angular developers can usually hop from one Angular codebase to another and feel very comfortable. This also makes researching edge cases a breeze, because more often than not, someone out there has solved whatever problem you’re facing.
Angular uses TypeScript which helps the development process
If you spend more than 15 minutes with Angular, you’ll truly understand just how robust their ecosystem is. This includes their incredible documentation, extremely active codebase, community support, code generation tools, and UI libraries. If you didn’t already know, Angular is developed and maintained by Google. You can imagine when you run into a problem and need to research (Google) something related to Angular, it’s usually not hard to find what you’re looking for. This leads to more time writing code and who doesn’t like that?
Other favorite features:
- Tree shaking – Unused code is removed at build time, leading to smaller code bundles.
- Ahead of time (AOT) compilation – Angular (by default) compiles your app and libraries at build time. The browser loads executable code instead of needing to compile the app first.
- Component based routing – Rather than fetching a new page from the server, Angular loads different views from memory which feels near instantaneous to the user. This is why an Angular app is known as a Single Page Application (SPA).
- Testing – With the modular structure, unit testing different components are simple and easy to do without the need to include additional libraries.
- Security – Angular has several built-in protections for things such as cross-site scripting attacks and sanitization.
Deciding the tech stack to use for your next application is a big decision, and both React and Angular have their respective benefits. That’s why, as Wes mentioned in his blog about React, only when you consider your team, goals, and the project at hand to know which tool will work best for you.
About the Author: