What is Node.js and Why Should I Care?

What is Node.js and Why Should I Care?

There are three main reasons why I’ve chosen to learn about Node.js right now.

As an operations guy I really don’t keep up with the latest and greatest when it comes to software development. I often hear developers discussing new languages or libraries but rarely care enough to jump in and figure out why it’s important to me. I’ve heard a lot of discussion about Node.js and seen many tweets, blogs, and articles that reference the term but up until now I haven’t really had the need or desire to jump in and figure out why it’s important.

Why Now?

There are three main reasons why I’ve chosen to learn about Node.js right now:

Now that Node.js is starting to show up seemingly everywhere (everywhere I spend my digital time anyway), I am compelled to really dive in and learn about this rapidly advancing platform.

Node.js adoption is growing at a rapid pace and operations staff need to know what is coming so they can be prepared for it.

My company AppDynamics, just bought another company, Nodetime (a Node.js monitoring software company).

So here is what I have found out about Node.js:

I started my journey at nodejs.org. Here is their definition right from their homepage: “Node.js is a platform built on Chrome’s JavaScript runtime for easily building fast, scalable network applications. Node.js uses an event-driven, non-blocking I/O model that makes it lightweight and efficient, perfect for data-intensive real-time applications that run across distributed devices.”

Hmmm, OK, that clears up the picture a little bit. Node.js is a platform that uses Chrome’s JavaScript runtime, that is a reference to Google’s open source V8 JavaScript engine.

Realization #2: Node.js is used to build server side applications.

This information brings up an important question: Isn’t it a bad thing to have a single threaded application server if you want high scalability? I had to do more research.

Maybe this statement is related to overcoming the single threaded nature “event-driven, non-blocking I/O model that makes it lightweight and efficient, perfect for data-intensive real-time applications that run across distributed devices.”

First I need to understand what “event-driven” means. The definition itself is quite easy to understand. There is a lot of information about event driven programming available on the web but I liked this description from a Princeton University page the best:

“In computer programming, event-driven programming or event-based programming is a programming paradigm in which the flow of the program is determined by events—i.e., sensor outputs or user actions (mouse clicks, key presses) or messages from other programs or threads.
Event-driven programming can also be defined as an application architecture technique in which the application has a main loop which is clearly divided down to two sections: the first is event selection (or event detection), and the second is event handling. In embedded systems the same may be achieved using interrupts instead of a constantly running main loop; in that case the former portion of the architecture resides completely in hardware.
Event-driven programs can be written in any language, although the task is easier in languages that provide high-level abstractions, such as closures. Some integrated development environments provide code generation assistants that automate the most repetitive tasks required for event handling.”

Source : https://dzone.com/articles/what-nodejs-and-why-should-i

Amit Nimraniya

NEA Consulting, Inc


To view or add a comment, sign in

Insights from the community

Others also viewed

Explore topics