Friday, 29 July 2016

Understanding Node.js

Node.js is built on Google’s Chrome Javascript Engine and it’s a server side platform. In 2009, it was developed by Ryan Dahl. The latest version is v0.10.36. The definition of Node.js can be summed up as follows:
Chrome’s Javascript runtime is what Node.js is built off of. It allows you to build scalable and fast network applications.Node.js uses a non-blocking I/O model which is event-driven. It’s efficient and lightweight which makes it the right choice for real-time applications on distributed devices.

What is Node.js?
Node.js is a runtime environment which cross-platform and open source. It’s used for developing network applications and server-side applications. Node.js applications use Javascript as the code and they can be run on Microsoft Windows, OS X, and Linux through the Node.js runtime. There’s a rich library which holds many Javascript modules with Node.js. This makes development of web applications simple.
  • Event Driven and Asynchronous – The APIs which are a part of the Node.js library is considered asynchronous or non-blocking. This means that when a Node.js server is used it never waits for an API to return the data. The server will move onto the next API once it’s called and the notification mechanism of Events found in Node.js helps a server get a response from any previous API call.
  • Can be Built quickly on Chrome’s V8 JavaScript Engine – The library of Node.js offers fast code execution.
  • Highly Scalable even though Single Threaded – A Single threaded event looping model is used for Node.js. The event mechanisms help a server responding in a way which is non-blocking. The server is scalable where traditional server creates a limited number of threads to handle the requests. A single-threaded program is used with Node.js and the same program provides service to larger numbers of requests that regular serves such as the Apache HTTP Server.
  • There’s no Buffering – When you use Node.js applications data is never buffered. The applications use output data in chunks.
  • License – You get Node.js under the MIT license.
Who is Using Node.js?
There are many projects, companies, and applications which are using Node.js. You can fund this list on the github wiki. Some of the well-known ones are GoDaddy, General Electric, PayPal Microsoft, Uber, Yahoo!, Wikipins, Yammer, and others.
This diagram shows the important aspects of Node.js

Where is Node.js used?
Here are the areas where Node.js is perfect to use:
  • Data Streaming Applications
  • I/O bound Applications
  • JSON APIs based Applications
  • Data Intensive Real Time Applications (DIRT)
  • Single Page Applications
Where you Should Not Use Node.js
Don’t use Node.js for any applications which are CPU intensive.

No comments:

Post a Comment