[MUSIC]
>> JavaScript which was designed as a scripting language for
the browser has seen deployment far beyond the browser.
Node.js has played a significant role in this shift
of JavaScript from the browser to the desktop.
Let's now learn a little bit about what Node.js is and what role does NPM,
the Node Package Manager, play in the context of Node.js.
Node.js, as I mentioned earlier,
allows us to bring the power of JavaScript to the desktop.
Node js is based on the JavaScript runtime
engine that has been built for the Chrome browser.
So the Chrome V8 JavaScript Engine has been ported from the browser to run
on the desktop and support the execution of JavaScript programs on the desktop.
Node.js is built around an event-driven,
non-blocking I/O model which makes it very efficient to run JavaScript
programs on the desktop, asynchronous JavaScript on the desktop.
Now this is where Node finds its true polish.
Right now we will examine Node.js in the context its use as a JavaScript runtime.
We will look at the server side application of Node.js
in detail in the last course of this specialization.
This is the typical architecture of Node.js.
So in this, the Chrome V8 engine is the bottom layer together with
libuv, forms the layer that interacts with
the underlying computer system to support the execution of JavaScript programs.
On top of it we have Node Bindings which is also implemented in C++.
At the top layer you have the Node.js and
Standard Library, which are all implemented in JavaScript and this is what
enables us to write JavaScript programs and run them on the desktop.
Naturally the ability to run JavaScript programs on the desktop
energize the web development community to explore using
JavaScript to develop a significant number of web development tools.
Tools such as Bower, Grunt, Gulp, Yeoman, and many others.
We will explore some of these in the later part of this course and
in subsequent courses.
The last course in the specialization as I mentioned,
looks at the use of Node.js on the server side.
How we can develop web server, business logic,
all implemented in JavaScript on the server side.
Together with Node you often hear people talking about
the Node package manager or NPM.
When you install Node on your computer NPM automatically gets installed.
The Node package manager is the manager for the Node ecosystem.
It manages all the Node modules and
packages that have been made publicly available by many different users.
A typical Node package consist of JavaScript files together with
a file called package.json which is the manifest file for this Node module.
We will look at how we can use the package.json file
in more detail in the subsequent exercises.
>> [MUSIC]