There was a time many internet years ago when any kind of logic within a web page had to be sent to the server for processing and then re-rendered as an entirely new web page. This “call and refresh” arrangement made for a disjointed user experience, which was only exacerbated when network latency was especially high.
The entire paradigm was upended with the introduction of XMLHttpRequest and the ability to make asynchronous calls to the server without actually having to refresh the page. This made for a much more coherent user experience because the user could perform a task that required a remote call and still interact with the application as the call was being made and processed. This is where the first wave of JavaScript frameworks landed and managed to prove that working with JavaScript could be done in a mostly same way and no one was going to lose life or limb.
Most people would agree that jQuery won that round, partially because jQuery did such a good job of abstracting away all of the insanity surrounding browser variations, and allowed developers to use a single, simplified API to build websites. The next frontier was to make websites behave and operate as if they were actual applications; this ushered in an entirely new set of challenges. For instance, jQuery has done an exceptional job of providing tools to manipulate the DOM, but it offers no real guidance on how to organize your code into an application structure. We’ve all heard horror stories of how a jQuery “application” ballooned out into a monstrosity that could barely be maintained, much less extended.
This desperate need to write large, maintainable JavaScript applications has given birth to a JavaScript framework renaissance. In the last couple of years, a slew of frameworks has burst onto the scene, with many of them quietly fading off into oblivion. But a few frameworks have proven themselves to be solid options for writing large-scale web applications that can be maintained, extended, and tested. One of the most popular, if not the most popular, frameworks to emerge is AngularJS from Google.
AngularJS is an open-source web application framework that offers quite a bit to a developer through a stable code base, vibrant community, and rich ecosystem. Let’s identify some of the high-level advantages of using AngularJS before we get into some of the more technical details of the framework.