We know what is AngularJS? but you might have heard about Angular, Angular 1, Angular 2, Angular 3(perhaps), Angular 4 and Angular 5. And you might be thinking what are all the Angular versions and what is the difference between AngularJS and Angular? Before diving into the explanation, here is a short answer, AngularJS is an old boy. It supports legacy browsers but low in performance and carry bugs while Angular is a rewritten version of AngularJS with tons of new features and improvements. Jump straight to versions, differences, and FAQs.
AngularJS and Angular versions
Let’s talk about versions first, we mainly have two Angular versions i.e Angular.JS and Angular. Angular is a rewritten version of AngularJS. Google introduces different versions of both AngularJS and Angular. Here is all about versions:
Video Tutorial here https://www.youtube.com/watch?v=FGFeOwCZKf8
- Angular 1 is referred as Angular.JS or AngularJS. It is an old version and still get updates.
- Angular 1.6 is the latest version of AngularJS. Many features were added to AngularJS 1.6 from the newer version of Angular but still, it has a lot of vulnerabilities and is low in performance as compared to Angular(the newer version). I have discussed some major differences of AngularJS and Angular here.
- Angular 2 released in May 2016 was a complete incompatible rewrite of AngularJS and is referred as Angular. It was the first version of Angular and they regularly now release new versions.
- Angular 3 does not exist and this version name was skipped due to versioning conflicts.
- Angular 4 released on 1st March 2017 introduced much new stuff including Ahead of Time(AoT) compilation and Universal project which allows server-side rendering.
- Angular 5 is currently the latest version (released on 8th November 2017) and it does not introduce any breaking changes compared to angular 4. It is just an improved and updated version of Angular 4.
- Angular 6 will release in March 2018.
- Angular 7 will release in September 2018.
Angular.JS(Angular 1) vs Angular(Angular 2) main differences
Video tutorial here https://www.youtube.com/watch?v=V6kBEEBSaSk
In Angular, We have these big version numbers but in reality, they do not differ that much. Most of the time we only have minor changes since the introduction of Angular. For instance, if you have an Angular 2 App, you can easily upgrade to Angular 5. So there is no reason to be super confused. But the difference only lies in Angular.JS and Angular as these are incompatible with each other means you cannot easily upgrade your Angular.JS (Angular 1) app to Angular 5 due to major changes like:
- Scope & Component: Angular.JS uses scope and controller for variables while Angular uses components and has no term like scope and controller.
- Directives: Angular.JS and Angular both use directives but the way of writing directives is different. For example:
- In Angular.JS you write ng-repeat but in Angular it is ngFor.
- For one-way and two-way binding in Angular.JS we use ng-bind and ng-model respectively while in Angular for one-way and two-way binding we use ng-Model in  and [()] respectively.
- Core functionalities in Angular.JS are moved to different modules in Angular because of some advantages like
- Faster dynamic loading
- Asynchronous template compilation
- Addition of reactive programming support
- Angular CLI: Angular uses Angular CLI is command line interface for building NodeJS style apps in Angular. It is helpful is building scalable apps and handles tedious tasks out of the box. It was not present in Angular.JS
- Performance: Angular is fast and is well optimized compared to Angular.JS
- Mobile Support: Angular comes with native mobile support whereas Angular.JS had no mobile support(there were only third-party mobile libraries available but not native)
What should I choose Angular.JS or Angular?
If you are developing a new app, and it does not need to support legacy browsers then Angular is the way to go as it is fast and can be easily updated to newer versions. But if you have an existing large app written in Angular JS then you might have to stick with AngularJS until unless it is buggy.
Why we have the different versions of both AngularJS and Angular? Why not just keep on updating Angular alone?
Apps written in AngularJS are not compatible with Angular 2 and its newer versions. If there are no updates for AngularJS framework, then all the apps written in AngularJS framework will have trouble when there are obvious bugs. So to support old apps, guys behind AngularJS provide updates for AngularJS as well.