Google initially developed and released AngularJS, a JavaScript-based open-source web application framework, in 2010. Future versions of Angular ended up dropping the "JS" from the name as the framework moved away from JavaScript in favor of TypeScript.
So, when you see "AngularJS," it's referring to the initial version of Angular that used JavaScript. In the web development world, "Angular" without the "JS" generally refers all later versions of Angular that were based on TypeScript instead, namely Angular 2 and Angular 4. For the rest of this article, we will discuss Angular and not the older AngularJS.
Angular is a front-end, or client side, framework. This means that the development and functionality is performed on your browser, and not by the server. While it was originally built to support single page applications (SPAs), with the competitive landscape of front-end frameworks increasing, Angular pivoted to improve the product and expand its functionality into what we have today.
Why Use Angular?
So why should you use Angular and what are some of its limitations? Below we’ll break down some detailed pros and cons as well as discuss when it makes sense for you to use this framework for your own web application.
Pros
Angular Command Line Interface (CLI)
One of the best features that Angular has to offer is its CLI, or Command Line Interface. The Angular CLI allows web developers to automate part of the development process, and do things such as start new projects, add components, and run unit tests and perform end to end testing all from one interface.
Ahead of Time Compiler (AOT)
A major selling point of Angular is that it makes the life of the developer easier when developing for web. With the integration of AOT, Angular doesn’t require the user to know JavaScript to bridge the gap between front-end and back-end. Angular compiles in real time and converts the TypeScript and HTML that you write into JavaScript that the browser can utilize.
Component Based Architecture
Focused on breaking down the project into individual functional components, Angular's architecture facilitates quick flexibility. You can break down, replace and reuse components in a seamless fashion. This also speeds up testing, since you can test each silo'd component on its own.
Helpful Community
Since Angular was built by Google, there is an inherently strong community behind the framework. Why is this good? Well, for starters, it is a reflection of strong documentation, meaning it allows devs to more quickly identify information they need from the source itself: Google. Second, if the documentation isn’t sufficient, the sheer popularity of the framework means there are plenty of developers who have likely experienced the same challenges you are facing, and may have solutions for you. Here are some great forums you can get started with:
- https://hackr.io/forum/angular
- https://groups.google.com/forum/#!forum/angular
- https://www.syncfusion.com/forums/angular
Cons
The learning curve is real
Angular is a really powerful framework and has a vast tool belt. But great power comes with great learning 🙂. It makes sense that it isn’t a framework for beginners, but that doesn’t mean Angular can’t be mastered.
AngularJS to Angular is a no-go
A big pain-point in the Angular community is that it's difficult to transition from AngularJS to Angular. This means that if your platform was built on the initial version of Angular, then you’re likely going to need to re-develop what you have in order to make it compatible with the newer Angular framework.
Search Engine Optimization (SEO)
Angular and SEO are not friends out the gate, plain and simple. Many developers have trouble working with the framework to make it more SEO friendly. While it isn't impossible to make your Angular web app fully optimized, it takes some extra effort. SEO is really important for building viewership and traction, so this can be a real deal breaker for some developers out there.
Common Uses
Ultimately, you’re looking to use Angular if you’ve got a website or web application on your hands that is complex in nature and needs to be dynamic. If you’re building a Progressive Web Application, a dynamic website, or a large-scale enterprise platform, then Angular is a good selection for you.
Think Angular isn't for you? Read about the difference between web apps and websites here, or our article discussing our favorite web development languages/frameworks here.
The benefit of Angular for dynamic web applications is fairly straightforward. Look back to the section discussing the pros. Angular gives the devs many tools to streamline development as well as community support for complex projects. It allows for real-time compiling, which is great for iterating, and Angular's component architecture increases flexibility and reusability.
Still have questions about Angular and wondering if it's the right tool for you? Give us a shout at resources@aloa.co.