Now that we have a good understanding of JavaScript frameworks,
let's talk specifically about Angular,
a brief history of Angular,
where it came from,
and some salient features of Angular before we go
on to start our first hands-on exercise with Angular.
Talking a little bit about the history of Angular,
Angular evolved from its earlier incarnation as AngularJS.
AngularS was designed primarily by Misko Hevery and was introduced around 2012,
and quickly became a very popular data application framework.
Angular that we are talking about in this course
was a complete re-implementation of the Angular framework.
So, Angular as you see now is a totally new animal with its own new characteristics,
but does owe some of its concepts and features to the earlier version of Angular.
So, you would see some common terminology between both AngularJS and Angular,
and some of the common approaches to solving the problem between both of them.
But the Angular syntax is significantly different from
the AngularJS syntax if you were familiar with AngularJS.
So, this requires you to completely retrain yourself
into the Angular way of solving problems.
Angular is a component-based approach for implementing web applications.
So, component has become the front and center of Angular now.
Although, the component-based approach has been back-ported to
AngularJS also from AngularJS version 1.5.
So, if you have been component-based approach with AngularJS,
you will be in a somewhat familiar territory if you come into Angular.
Angular has been designed from the beginning
with mobile support so you can easily address mobile platforms,
and also provides server-side rendering to speed up
the rendering of your web application on the browsers.
Also, Angular provides powerful templating engine and powerful templating support.
We will see some of these in more detail as we go along in this course.
To summarize, what exactly is Angular?
Angular is a structural framework for designing dynamic web applications.
The HTML based approach that we have seen,
for example, with Bootstrap results in primarily static documents, of course,
with jQuery and AJAX,
you can do a little bit of dynamic behavior in your websites using Bootstrap earlier,
but Angular fills in the gap to support
fully dynamic applications, data-driven dynamic applications.
This uses a declarative approach.
We have talked about the declarative programming approach in the previous lecture,
so that's what Angular adopts as its way of solving the problems.
When you come into the Angular world,
you'll pretty soon bombarded with a lot of Angular vocabulary.
You'll hear people talking about One-way and Two-way data binding,
and then components obviously and then you hear people talking about directives,
then routing, templates, and modules, service,
then you'll hear people talk about provider and testing,
and many more, and pretty soon you'll be overwhelmed with the terminology.
In this course, we will take a gentle approach towards this terminology.
We won't bother ourselves too much with the terminology but
instead understand how we actually make use of Angular.
With a reasonable understanding of
this terminology but how we make use of Angular to solve problems?
These terms are wonderful to sprinkle in your conversation in cocktail parties.
If you can even try this pickup lines, "Baby,
would you like to see my components,
or you bring the data and I'll be the provider."
Now, depending on how well you can carry it off,
you may be a big hit or you'll be hit.
Sometimes, when you search up Angular on the web,
you will see it being referred to as Angular Two,
and you'll be wondering, is it Angular Two or is it Angular?
Well, to make it more clear,
in a recent blog post on Angular site,
they made a clear distinction between why they are going to be calling
this new framework as just Angular rather than Angular Two,
or Angular Three, or Angular Four.
Angular has erupted the semantic versioning
for marking the various versions of Angular as the release.
Semantic versioning which uses the syntax as major version,
minor version, and patch.
Patch meaning that these are primarily bug fixes,
minor version meaning small enhancements,
and a major version maybe introducing breaking changes.
So, right now, we are at Angular Six version,
and Angular Seven version coming in September or October 2018,
and every six months thereafter,
you will be seeing a major version being released.
Now, from your perspective,
once you get started,
Angular developers have promised to maintain
backward compatibility with the application of earlier syntax
and a well-defined upgrade path
for those who want to move on to the newer versions of Angular.
So, don't be too concerned about it,
what you're going to learn will keep you in good start for a long time to come.
It's not going to be like from AngularJS to Angular,
that kind of breaking change will not be seen in the future versions of Angular.
Time to move on to our first terms on Angular exercise where we will install
the angular-cli and then create our first Angular application using angular-cli.