What is Angular?

Angular is a client-side MVC framework for JavaScript. It’s a tool built around the concept of emulating the successful application design model of server-side tools like Ruby on Rails but in the client. This facilitates moving a significant portion of the application logic to the web browser, which primarily supports the goal of enabling Single Page Applications (SPA’s).

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.

History

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.

At the time, Google primarily used Google Web Toolkit, GWT, for their internal projects, which was a Java-based framework that required developers to write their web applications in Java, and it would compile into JavaScript. This wasn’t necessarily the most efficient way to develop software for the web and tended to generate a lot of code.

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.

Competition

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, React, and Vue.js have been the big three for a while, knocking an older framework called Ember off its throne. There are quite a lot of other smaller projects, but none that are nearly as popular. However, a small project called Svelte has gained a lot of attention, particularly in the last year. It’s smaller and faster, dropping the virtual DOM concept and using pure JavaScript to manage state updates. Svelte can almost be thought of more as a compiler than a framework because instead of loading the framework and then loading your modules, with Svelte, you compile a single optimized source that can load and run immediately.

Explore

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.

Scroll to top