Navigating the Evolving Web - Part II: Angular
Date: Friday, May 4, 2018
Developer: Google
Paradigm: Object-Oriented
Default Language: Typescript
Size: 143K*
Job Market (UK): No.1
*gzipped value at end of 2017
History
Angular has the longest history of the three frameworks we are looking at with development going back to 2009. However, 2014 saw a complete rebuild of the platform. The original framework is now called AngularJS and the new simply Angular.
Misko Hevery started AngularJS as a side project whilst working at Google. Hevery wanted to empower web designers to build database-driven, online applications by arming them with a more comprehensive set of tools than vanilla HTML provided. Angular was to be the means by which web developers could create the components non-developers would use to build applications.
But in the process, Angular just made building web applications better. Hevery challenged his manager that he could rebuild a GWT (Java) application in a fraction of the time and with a fraction of the code with his nascent framework. He did, and with that, the new framework began to gain traction.
AngularJS proved itself within Google delivering applications in less time with less code and with less fuss and was officially released late 2010/early 2011.
Philosophy
Angular is about giving you everything you need in one. This gives you a one-stop-shop solution but means that Angular is BIG in comparison with the other frameworks - compressed, it is about 3.5x bigger than React, 7x bigger than VueJS. It also means it is big to learn. Angular also introduces RxJS to handle events and asynchronous behaviour increasing the learning curve further (for most people anyway).
Typescript, the recommended language of Angular, is essentially modern Javascript with strong typing and interfaces. This gives Angular a strongly typed, firmly object-oriented flavour. Dependency Injection also features heavily here.
If you are accustomed to .NET, this object-oriented, tool-dependent, big API approach will be immediately familiar. And this partly explains Angular's success in the enterprise.
Angular's brand is immediately recognisable within the industry and was designed with large (corporate) teams in mind.
Tooling
Tooling is excellent with first class support in Visual Studio, Visual Studio Code (which itself is written in TypeScript) and Chrome Developer Tools using Augury.
Popularity
As the only commercially backed open source framework at the time, Angular's first incarnation was rapidly adopted in the industry where it remains No.1 to this day. This, along with its commercial backing means that Angular has a wealth of learning resources available - books, courses, videos, tutorials, blog posts - you name it.
Perspectives
The .NET Team Leader
The audience for whom Angular would be the most natural choice is a large or growing .NET team. Its strong object orientation and 'kitchen sink' approach would be most familiar to .NET developers and having a team would mitigate some of its complexity.
The Start Up
For a start-up that wants to move fast, to get an app on as many platforms in as short a time as possible, there may be better choices than Angular at the moment.
The Job Seeker
Most front-end jobs list Angular as either a requirement or a desirable extra - it is as simple as that. This is somewhat dependent on which part of the world you are in but the name 'Angular' is globally synonymous with web development.
The Learner
While there are plenty of good resources out there, there are a lot of concepts to absorb before getting really productive with Angular. Learners might be better off skilling up on some of the ideas needed e.g. basic web, components, Dependency Injection, Reactive Extensions, ES6 etc. before attempting to tackle them all together under one framework.
Summary
Angular is neither 'light' nor simple but it does have the largest market share of any front-end framework. As the framework itself is backed by Google and Typescript is backed by Microsoft, it is well resourced and not likely to disappear any time soon.
Next time, the most influential Javascript framework of all - React.
You can read the previous part of the blog series here: Navigating the Evolving Web - Part I