In the Beginning, There Was AngularJS.
Let me tell you, they are in for a big disappointment — Angular 3 will not come their way — ever! But Angular 4 will be there ready to rock their world or confuse them further (he also goes by “Angular”).
So what’s going on here? Did you fall in love with Grandpa and are ready to embrace the grandkid?! Who killed Angular 3? Why are there so many generations in just a few years? Let’s take a look at some family history.
Grandpa JS (AngularJS, the first version — better known as “Angular”) was born in 2009, but after awhile he simply wasn’t good enough: he could neither be server-rendered nor compiled into native code. You could also forget about rendering well to other environments (how selfish of him!). He had done his job, though — he allowed you to extend HTML vocabulary for your app, providing you with an expressive, easy-to-develop and readable environment. But his best was simply not good enough for you, the perfectionist! He had one huge problem: he would bind himself onto an existing DOM, adding super powers to it. In a modern world that is unacceptable!
Angular Makeover (Angular 2)
So his successor, Angular 2 (AKA “Angular”) came along to save the day, to take care of all your needs, but drastic modifications had to be made. You wanted it all: speed, power, performance, scalability, offline compilation, rendering in other environments (lil’ picky, are we?). He came into this world to make you happy — yes, the impatient and demanding you. He was willing to do it all, and even took full control of the templates and made the changes before they arrived in the DOM.
But this wasn’t good enough for you either, and now you want more, you are looking for someone new, someone better. You are waiting for Angular 3 to live happily ever after, but it’s not gonna happen…
The Third Generation — Angular 4
Make room for yet another “Angular” in your heart, though — Angular 4 was released back in March. Will you have to completely change your ways for this handsome stranger? No, it’s completely backward compatible with Angular 2. Why should you abandon his predecessor? The reasons are plenty: he will meet your needs and fulfill your desires even more. What does he hold in store for you? A smarter compiler, better error messages, strictNullChecks (something new that gives you extra type safety), faster ngc — all these in its TypeScript 2.1; better Angular compiler errors, a faster and smaller compiler, no breaking changes for stable APIs and common usage patterns. All of this implies less work for you since it will generate 25% less code. Ready to fall in love all over again?
Angular 3, the Unwanted Child
Now, with all these attractive features, why did he have to get rid of Angular 3? Feelings of insecurity? Not at all — it was simply a question of the router. Yes, somewhere in the dark past an error occurred: when Angular 2 made itself available, its router was already version 3. Thus, not to sow panic among his beloved, a big decision was made — Angular 3 was sacrificed so that Angular 4 (AKA “Angular”!) could go hand-in-hand with the fourth generation of the router.
If you no longer know how to call your precious one, remember that for you, he will always be “Angular,” just “Angular,” and he will continue perfecting himself to keep you happy. In fact, you will be getting his new patch version (a simple change reflected in the last number of the SemVer — when a bug gets fixed, for example) every week! If you continue being faithful to him, every month he will surprise you with a new minor version of himself (the middle number of the SemVer shows this addition of new features). Now, true commitment really pays off: every six months he will renew himself even more for you with his new major version (the first number of the SemVer is there to testify for a major, potentially breaking change).
As you can see, perseverance pays off, and your continuing love story can really be the “happily ever after.”