What to learn, Angular 2/4 or AngularJS?

It is always better to be in tune with the release of the latest versions of technology that comes up. But it totally depends on what your goal is, if you are looking for a new gig or you want to learn the technology because, maybe, you love to learn new stuff. If you are looking for a job or new gig to work on, then it’s highly recommended that you learn a version prior to the latest, because a lot of projects and startups may be in the past technology.In the case of Angular, many companies still use AngularJS- which is the first version – whenever it’s called just Angular without the “JS” it tackles all new versions. But a lot of clients want to implement the latest version of Angular. Having said that, if a company is hiring for maintaining a project or probably for speeding up the development of a project that had started before these versions come up, then they will  probably ask for AngularJS. In any case, you should also have knowledge of the newest released and stable versions so that you can always get more chances to work on all the latest projects.

Right now Angular 4 or Angular is brand new and companies will still hold on to ask for it so it is better if you learn previous versions as AngularJS. Here are some points to consider:

New to Angular?

If you’re completely new to Angular, and based on Angular’s market share, you may have to learn both. If you learn AngularJS with the component API and at least understand how to go back to the MVC way, then you can get into a project tomorrow using AngularJS.

Working with AngularJS?

You can learn Angular 2/4 and bring something new to the boss. Thereforelearn it in your own time and see if you like it so you can implement it in the coming projects of the company, as long as you are allowed to do it.

Working with other front-end frameworks?

Perhaps you’re using, for example, React, Ember or Backbone, and you’re now considering getting into Angular. You need to carry out research on what Angular will offer you, analyzing at the same time pros and cons against your technologies in use. Topics such as performance, ahead-of-time compilation to drastically decrease the size of your code base, and learning curve are some of the many aspects to consider when planning to test out new frameworks in future projects.

Nonetheless, there is something important to understand about which Angular version you’d like to learn (having in mind, at this point, that AngularJS and Angular are 2 different frameworks even if they are called almost the same):

  1. AngularJS was based on pure JavaScript and used controllers and views for rendering.
  2. Angular (2/4) is based on TypeScript which is an open source programming language developed by Microsoft. It’s a superset of JavaScript and adds optional static typing and classes, plus you will have to grasp the basics concepts of Angular such as Component Decorators and implement them in any of your developments. In itself, it is nothing more than a statement of what a component will be like and the various parts it consists of. Having said and first and foremost you will need to learn TypeScript before going for Angular.

AngularJS and Angular are 2 different frameworks even if they are called almost the same.

In addition to the above mentioned,  if you are a solo developer or a technical leader with AngularJS knowledge and you have personal projects to develop in the near future or you have clients planning to start new projects where you are going to be responsible for building the whole front-end from scratch, learning the newest versions of Angular is a great choice specially if those projects are going to be designed to be maintained for over 2 – 3 years, since eventually everyone is going to migrate to it.

AngularJS was innovative when it was launched, it made things alot easier to develop at the beginning, because no more coding was required except for linking a proper controller to the part of HTML. Its introduction to the framework made AngularJS a huge step forward when it comes to testing front-end applications. JavaScript is a dynamic, interpreted runtime language that comes with a great power of expression, but it also comes with almost no help from the compiler. For this reason, any code written in JavaScript must come with a strong set of tests, so many features were built into AngularJS to make easier to test applications at the client side. Technologies like Jasmine and Karma are useful to do unit testing with AngularJS.

The purpose with AngularJS wasn’t to create the most efficient framework, but the easiest one to write in. As performance became more of a problem, Angular 2 was introduced to solve that issue. AngularJS has a digest cycle, which allows changes to trigger updates up and down. Angular 2, on the other hand, has a directional graph of components that is always being checked – due to one traversal path from the root to the leaves. According to Angular core team members, these changes made Angular 2 applications work 3-10x faster than the same apps created with the latest AngularJS. However, the fact that there is a successor doesn’t mean the old version has immediately become obsolete; yet we can’t ignore the possibility that the support for AngularJS is going to end someday soon.

The purpose with AngularJS wasn’t to create the most efficient framework, but the easiest one to write in. As performance became more of a problem, Angular 2 was introduced to solve that issue.

The truth is that here is no right answer, but hopefully this post has given you some insights as to what you need to consider when you determine to learn either Angular or AngularJS and what  the goal you are going to pursue will be the moment you get acquainted with these wonderful technologies.


Right Away