Thursday, March 22, 2018

Angular Introduction: What It Is, and Why You Should Use It

In this article, I’m going to give you a general overview of a very popular and widely used client-side framework called Angular. This Angular introduction is mostly aimed at newcomer developers who have little experience with JS frameworks and wish to learn the basic idea behind Angular as well as understand its differences from AngularJS.

A JavaScript framework is a kind of buzzword these days: everyone keeps discussing these frameworks, and many developers are arguing about the best solution.

So, let’s get this Angular introduction started, shall we?

Why Do I Need a Framework?

If you’re not sure what a JavaScript (or client-side) framework is, that’s a technology providing us the right tools to build a web application while also defining how it should be designed and how the code should be organized.

Most JS frameworks these days are opinionated, meaning they have their own philosophy of how the web app should be built and you may need to spend some time to learn the core concepts. Other solutions, like Backbone, do not instruct developers on how they should craft the project, thus some people even call such technologies simply libraries, rather than frameworks.

Actually, JavaScript frameworks emerged not that long ago. I remember times where websites were built with poorly structured JS code (in many cases, powered by jQuery). However, client-side UIs have become more and more complex, and JavaScript lost its reputation as a “toy” language. Modern websites rely heavily on JS and the need to properly organize (and test!) the code has arisen. Therefore, client-side frameworks have become popular and nowadays there are at least dozen of them.

Angular Introduction: What Angular IS

AngularJS used to be the “golden child” among JavaScript frameworks, as it was initially introduced by Google corporation in 2012. It was built with the Model-View-Controller concept in mind, though authors of the framework often called it “Model-View-*” or even “Model-View-Whatever”.

The framework, written in pure JavaScript, was intended to decouple an application’s logic from DOM manipulation, and aimed at dynamic page updates. Still, it wasn’t very intrusive: you could have only a part of the page controlled by AngularJS. This framework introduced many powerful features allowing the developer to create rich, single-page applications quite easily.

Specifically, an interesting concept of data binding was introduced that meant automatic updates of the view whenever the model (data) changed, and vice versa. On top of that, the idea of directives was presented, which allowed inventing your own HTML tags, brought to life by JavaScript. For example, you may write:

<calendar></calendar>

This is a custom tag that will be processed by AngularJS and turned to a full-fledged calendar as instructed by the underlying code. (Of course, your job would be to code the appropriate directive.)

Another quite important thing was Dependency Injection, which allowed application components to be wired together in a way that facilitated reusable and testable code. Of course, there’s much more to AngularJS, but we’re not going to discuss it thoroughly in this article.

AngularJS became popular very quickly and received a lot of traction. Still, its maintainers decided to take another step further and proceeded to develop a new version which was initially named Angular 2 (later, simply Angular without the “JS” part). It’s no coincidence the framework received a new name: actually, it was fully re-written and redesigned, while many concepts were reconsidered.

The first stable release of Angular 2 was published in 2016, and since then AngularJS started to lose its popularity in favor of a new version. One of the main features of Angular 2 was the ability to develop for multiple platforms: web, mobile, and native desktop (whereas AngularJS has no mobile support out of the box).

Then, to make things even more complex, by the end of 2016, Angular 4 was released. “So, where is version 3?”, you might wonder. I was asking the same question, as it appears that version 3 was never published at all! How could this happen? As explained in the official blog post, maintainers decided to stick with the semantic versioning since Angular 2.

Following this principle, changing the major version (for example, “2.x.x” becomes “3.x.x”) means that some breaking changes were introduced. The problem is that the Angular Router component was already on version 3. Therefore, to fix this misalignment it was decided to skip Angular 3 altogether. Luckily, the transition from Angular 2 to 4 was less painful than from AngularJS to Angular 2, though many developers were still quite confused about all this mess.

Angular 5 was released in November 2017. It is also backwards compatible with prior Angular versions. Angular 6 should be released quite soon, hopefully giving us even more cool features and enhancements.

Continue reading %Angular Introduction: What It Is, and Why You Should Use It%


by Ilya Bodrov-Krukowski via SitePoint

No comments:

Post a Comment