What is Angular?
Angular is part of a group of frameworks that are “reactive,” meaning they can recalculate related components on the fly. If a user changes the quantity in their shopping cart from 1 to 2, the app can automatically know that the subtotal, shipping, tax, and total are all related items and need to be updated. Instead of rerendering the entire page, these frameworks typically use a “virtual dom,” which is updated, compared to the real DOM displayed in the browser, and only the bits that are different get changed. This can make the web application incredibly performant.
Angular has been able to move beyond the client. Developers can generate web applications, native mobile apps, and even desktop-installed applications. This modern development tool prides itself on its performance and versatility.
Angular is component-based, meaning that small pieces of functionality are grouped into reusable components. The components are aggregated together to build entire applications. Components include templates which act like supercharged sections of HTML. They look and function much like a regular part of the DOM but include much more functionality and can bind to data and events from the component. They keep the template up to date with changes that happen in the component and update the component to interactions that the user had made in the template.
Angular comes with a lot of tools built right in, allowing you to create interactive forms, complex animation, or manage internationalization. But, with its component-based architecture, the real power of Angular is allowing the developer to build up their own library of reusable functionality tailored to their specific needs.
It was originally written in 2010 by Miško Hevery and Adam Abrons. Hevery was a Google software developer, but this was his personal side project.
The Angular lore is that Hevery had been working on the Google Feedback Tool with two other developers. They had spent six months developing this tool in GWT. Hevery is rumored to have bet his boss that he could rewrite the app by himself in two weeks using Angular. He lost the bet because it apparently took him three weeks.
There is probably some amount of embellishment to this story. However, Hevery’s boss must have been impressed because they ended up shipping the Angular version of the tool rather than using the in-house preferred GWT.
Hevery released Angular around the same time as an open-source tool, and the web development world began to adopt it.
Google had acquired DoubleClick a couple of years previously and was planning to rewrite it. It had originally been developed using the Microsoft .Net framework, and Google wanted to use their own tools. The DoubleClick team had heard about Angular and decided to adopt it over GWT. The DoubleClick rewrite, which was massive, took a year and a half and was released in 2012. It cemented Angular as a major force in the client-side MVC world.
In 2016, Angular (now officially sponsored by Google) released the 2.0 version of their framework to some consternation of their now fairly large user community. It was a complete rewrite, based on TypeScript, which aimed to overcome some of the shortcomings in the initial version. In order to accomplish this, the new version ended up being incompatible with the original version, leading many users in the position of having to rewrite significant portions of their application in order to upgrade. Some jumped ship to other frameworks entirely, as there was now a growing number of alternatives.
React is probably considered to be Angular’s main competition. React was released in 2013 by Facebook and has been one of the most popular front-end frameworks ever since. Functionally similar, it often comes down to which applications’ development style you prefer.
Vue.js was introduced in 2014, and in fact, has contributions from both React and Angular developers. Evan You had worked at Google and used Angular there, but wanted to write a tool that was easier to use and much smaller for the client. Vue.js is faster and lighter than both React and Angular.
Angular has a very well written website, no surprise with Google putting its weight behind the project. The documentation is thorough, and it’s filled with examples that make it easy to get started. There is a vibrant and active development community, hosting annual conferences and answering questions on Stack Overflow. Given that Angular has been around for a decade, receives regular support and upgrades, and has Google’s corporate sponsorship, it’s a safe bet that it will be around for some time to come.