Why I am a big fan of Node.js ecosystem!

T.v. Vignesh
TechAhoy
Published in
6 min readFeb 24, 2018

I have worked on lots of languages and ecosystems over the years and this article summarizes why I absolutely love Node.js more than anything.

Since, I don’t mean to be biased, I would also be giving few pitfalls of Node.js but trust me, there are not many pitfalls when it comes to Node.js ecosystem. But let me confess, I am totally biased towards Node.js

Non blocking I/O

This has been one of the biggest advertising factors of Node.js which is asynchronous and non-blocking by default (unless you deliberately make it blocking). Do all the time consuming operations in the background without waiting and execute callbacks whenever the work is complete saving tons of processing time.

A language with an almost infinite lifetime

You may have not heard this anywhere else. What I mean here is that javascript is going to exist for eternity till browsers exists in this world and Node.js is thus going to exist for eternity as well since Node.js is nothing but javascript in runtimes like V8 of Chakra Core along with libuv.

Other languages don’t have this advantage since it is highly dependent on the maintainer or community’s interest in it and the support/backing it receives. But, since the entire web is almost built in javascript now, there is no backing off from it.

NPM (Node Package Manager)

Man, I have never ever been so comfortable with an ecosystem like this. So many opensource packages readily available to use and most importantly, it is insanely easy to use without any fuss. It does almost all the work for you. I see NPM like a Play Store or Itunes Store for languages.

And before I forget, NPM is the #1 package manager in the world. You can see details on the ranking here: http://www.modulecounts.com/

Javascript Everywhere

While this may seem not so right for some developers, it is insanely useful for companies and individuals who are not looking forward to learn so many languages but rather are looking forward to get their work done with minimum effort and cost as possible which it very much allows you to do. All you need to know is javascript and you can thrive well in this world.

Cordova already made it possible to use Javascript to create Hybrid Apps and now comes platforms like Electron.

If you are crying about Javascript being used for development, just stop crying and use Typescript which will make your life easier if you are someone looking for things like Types and a structured language.

Electron

Before few years, I wished that I can code software with the languages I know already without learning anything special and Electron made it very much possible. Do all the UI you want with Web Development languages without compromising access to Native OS APIs. Some insanely powerful editors like Atom and VSCode are also made in Electron. This gives a high degree of power in the hands of developers.

And yeah, you might have known already, but still..

Electron runs in Node.js runtime.

The community

Most of the times, I tend to move with the herd, choosing the technology/language with good community support so that even if I get stuck or something happens, I have someone to look up to. And when you take Node.js into context, no words to say. Its insanely amazing to see the amount of support from the community.

Infact, seeing this support the Google team even made Node.js its first class citizen (No feature would be shipped by the V8 team if it breaks the working of Node.js)

And, its not only Google, Microsoft has been adopting Node.js largely and you can see that from VSCode by itself which was made in typescript.

Just head out to github and see the number of stars, Node.js has: https://github.com/nodejs/node

If that does, not suffice, see the number of questions in Stack Overflow tagged Node.js and javascript:

Stable @ Production

When we adopt some language, we should always see who is already using it in production, how have they been using it and why are they using it.

When it comes to this point, big companies like Uber, Netflix, LinkedIn, Trello, Paypal, eBay, NASA, Groupon,etc. and even Medium uses Node.js in production. Just google it out and you will be amazed.

Node Summit

How would it feel to have almost all the geeky brains together at one place, sharing amazing things with each other. Node summit makes this possible and unlike some other summits, it is insanely informative and I highly recommend you to watch some videos to get a gist of it.

You can watch their videos here: http://www.nodesummit.com/videos/

Performance

Whilst many people have been recently behind languages like Go, I still feel the performance that Node.js offers is extraordinary. You have to make minor sacrifices to get the best of all things and I dont think Node.js falls too behind. Its definitely faster than languages like Java, C#, PHP, Ruby, etc. which are all being used for web.

All you have to watch out for, is that it supports a maximum of 1 GB of RAM in 64 bit systems and 512 MB for 32 bit systems per instance but it should not be a problem since you can run workers, or even multiple Node instances if you need it. And, with the advent of technologies like Docker, it makes it even more easy for you.

Since nothing blocks the I/O, this becomes the goto platform for everything which involves huge delays in I/O without worrying much about things like database latency and stuff.

Amazing frameworks & libraries

Are you a person who finds it difficult to work on a language without frameworks? You need not worry about that part and the community has got you covered.

There are amazing frameworks like Express, Restify, Hapi, Koa, Total and more from the community which provides you a great set of apis and extensibility out of the box.

And you also have amazing libraries like Passport, Socket.io, etc. which covers a huge deal of what you would generally do with your applications starting from Authentication to Communication.

Testing frameworks

Worried about unit testing? You again have a huge number of tools which comes to your help. Mocha, Jasmine, Chai, Karma, Ava and lot of other tools can help you choose what you want.

High scalability

Since Node.js is very lightweight, flexible, extensible and performant, it can be scaled horizontally at a rapid pace without much work and you may have already seen lot of Node applications already available as Docker containers for you to use.

Support in the cloud & by enterprises

If you are using tools or services used by other companies like Azure, AWS, Twilio or anything for that matter, almost all of them have support for Node.js and even provide Node.js SDKs for you to work with. It has been made very easy to run your Node application in the cloud without worrying much about what services your infrastructure providers offer.

Need library from other languages?

What if you would need a library from a language you are using. What if you like an AI library which you use in python? Node has got you covered there as well. You can wrap libraries made in almost any language as a Node library and use it. You might have already seen tensor flow Node library amongst many others already available.

Need to interact with other languages?

So, what if you already have your stack in some other language/runtime and want to work and communicate with Node.js as well? You even have inter-process communication libraries for Node like Edge: https://github.com/tjanczuk/edge

If you dont have a library for your language, you have APIs anyways. So, you are not left out.

Development tools?

You have a huge ecosystem which helps you in writing code, debugging, building, managing and maintaining your Node.js applications. Infact, Node inspector is part of Chrome Devtools as well. You also have editors like VSCode which provides you with powerful support for debugging Node.js applications.

Build tools?

Are you someone who works with lots of build tools to help you out in your project development? Node.js certainly has many which you can use if and when you need them.

You have Grunt, Gulp, Webpack and you can even use npm scripts to help you out. So, you are covered there as well.

All I would do now, is end this article by pointing you guys to an amazing repository I found on Github by Sindre Sorhus:

Know something which I don’t do share it with me and don’t forget to follow me or my publication for future articles I write.

--

--