1. AngularJS supports single page applications
Single page applications are becoming more popular for a good reason. They fill a very specific need. More functionality is being moved to the web, and the browser is finally realizing its potential as a distributed computing node. By design, SPA applications are far more responsive (even though some of that is perception) and can provide an experience that feels almost like a native app in the web. By rendering on the client they cut down load on the server as well as reduce network traffic, i.e. instead of sending a full page of markup, you can send a payload of data and turn it into markup at the client.
2. AngularJS gives developers controls
One of the most common complaints I hear about moving to MVC is “what do we do with all these controls?” The perception was that controls do not work/would not function in the non-ASP.NET space, but web developers who use other platforms know that this is just not the case. There are a variety of ways to embrace reusable code on the web, from the concept of jQuery plugins to third-party control vendors like one of my favorites, KendoUI.
3. AngularJS gives XAML developers a place to go to on the Web
A majority of developers using Angular probably have not touched XAML with a ten foot pole! 🙂 That’s okay as the reasons why XAML became popular in the Microsoft world was because of WPF, Silverlight etc. Now Windows Store app development is important to look at because they translate quite well to Angular. If you are not familiar with XAML, it is a declarative language based on XML used to instantiate object graphs and set values. You can define various types of objects with properties and literally mark up a set that will get created. The most common types of objects to create are user interface elements such as panels and controls that create a display.
4. AngularJS handles dependencies
5. AngularJS allows developers to express UI declaratively and reduce side effects
There are many advantages to a declarative UI. I mentioned several when I discussed XAML earlier in this post, but HTML is in the same boat. Having a structured UI makes it easier to understand and manipulate. Designers who aren’t necessarily programmers can learn markup far easier than they can programming. Using jQuery you end up having to know a lot about the structure of your documents. This creates two issues: first, the result is a lot of unstable code working as “glue” that is tightly coupled to changes in the UI, and second, you end up with plenty “magic” because it’s not evident from looking at the markup just what the UI will do.
6. AngularJS enables a design <—> development workflow
OK, who am I kidding, right? You can get this with HTML and CSS and other fun technologies. The reason this gets its own bullet, however, is because of just how well this works with Angular. The designer can add markup without completely breaking an application because it depends on a certain id or structure to locate an element and perform tasks. Instead, rearranging portions of code is as easy as moving elements around and the corresponding code that does the binding and filtering moves with it.
7. AngularJS enables massively parallel development