HTML5 Zone is brought to you in partnership with:

Software developer and solutions designer of large distributed systems and frameworks. Luis is a DZone MVB and is not an employee of DZone and has posted 7 posts at DZone. You can read more from them at their website. View Full User Profile

Why is Node.js so Popular?

06.19.2014
| 13445 views |
  • submit to reddit

I am pretty sure you have heard about Node.js. Basically EVERYONE is talking about it right now; everyone wants to learn it, web development trends seem to be moving towards it and even huge sites like LinkedIn, eBay and PayPal have their entire infrastructure based on it.

Node.js is a server technology used to build and run web applications, similar to what ASP.NET, Ruby on Rails or Spring Framework does. It uses JavaScript as its main language, a built-in lightweight web server and a whole bunch of plugins managed through the Node Package Manager (NPM) that allows you to mold your application to your needs, like adding Model-View-Controller features, RESTful services, OAuth and SSL security and others.

But, really, why has it become so popular all of a sudden? Sounds like yet another web technology like any other else, right?

Well, in a nutshell:

  • Language re-use    Technologies like ASP.NET or Spring requires developers to know yet another language to write code on the server-side; be it C#, VB.NET, Java or any other. On the other hand, Node.js uses JavaScript both on the server and client side, meaning that developers only have to talk in a single language across all layers.
  • Easy developer transition    JavaScript is a common ground between web developers, that’s a known fact. Most of us know JavaScript or have used it at some point in time; of course, because of this, transitioning a web developer from any other web technology to Node.js is easy as pie.
  • It is lightweight    Node.js uses an event-driven architecture which means everything done on it, every single call and operation, is a chain of asynchronous callbacks. This allows Node.js to run on a single thread, different to other web technologies, which spawn a new thread per-client request. This is the very foundation of the non-blocking I/O nature you may have heard that is Node.js’ main feature.
  • Built-in support for object databases    It is really common for Node.js applications to use object databases such as MongoDB. MongoDB, contrary to traditional SQL databases, it uses a document-based model instead of a relational model; this means that instead of tables, it uses objects resembling JSON. Just the right answer for ORM fans.
  • Wide support from IDEs and code editors   JavaScript has been around for a long time, so code hinting and highlighting is featured by a bunch IDEs like Visual Studio and Eclipse; also editors like Notepad++ and Sublime Text.
  • Can be hosted almost anywhere    Several web servers and cloud-based hosting providers support hosting of Node.js web applications out-of-the-box. To mention a couple: Google, Microsoft IIS, Heroku, Microsoft Azure, Amazon (AWS), and a bunch others.


Node.js event-driven architecture. Image by Toptal.com

So, that’s my two cents on the matter. I’ve been getting my hands dirty with Node.js these last weeks and have been a hell of a ride. It keeps becoming more and more a necessity to learn its ways as time passes. I’ll be posting on my findings soon.

In the meantime, here is an interesting guide on when and where to use Node.js and, if its the case, how to convince your boss about using it for your next project.

Published at DZone with permission of Luis Aguilar, author and DZone MVB. (source)

(Note: Opinions expressed in this article and its replies are the opinions of their respective authors and not those of DZone, Inc.)

Comments

Prahlad Yeri replied on Tue, 2014/06/24 - 9:34pm

 "Node.js uses an event-driven architecture which means everything done on it, every single call and operation, is a chain of asynchronous callbacks."

- Verily, this single point is the REAL deal that results in a high performance web app by implementing node.js, a paradigm that no other language is able to apply to the extent that node does. I've myself done a comparison with both PHP-FPM  and PHP  (running on Apache) and found node to be much faster on both occassions.

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.