Why I use Node.js

It has been a while since I took up Node.js development.
My early impressions were pretty positive and after some months of Node.js development I have to say that I am amazed.

There are many reasons to continue using Node.js for my projects.

Great for applications with heavy I/O

The asynchronous nature of Node.js enables you to stay focused on your implementation. You don’t need to proceed to any extra configurations as you do with multithreaded environments. Also long I/O operations don’t have to be dispatched to any custom mechanisms, enabling you to avoid any extra costs on development.
Provided your application is mostly based on I/O and less on computation, chances are that Node.js will work for you.

Bootstrapping

Node.js is one of the most bootstrapping experiences that I had with a programming environment. All you need is to have node and npm installed. There are libraries for almost everything you need and the configurations needed are minimal.
Also getting started with the implementation of your Node.js extension takes you no time at all.

Set up Simplicity

All it takes to setup your project is your source code and a package.json file with your dependencies.

Make use of your Javascript skills

Although a backend developer I had to write some javascript in the past. The same applies to other developers I know, even to the most backend focused. Learning a language is an investment.You can make more out of your javascript knowledge, by using Node.js on your projects provided it suits to their needs.

Not another web framework

Node.js is not another web application framework. Due to It’s asynchronous nature and efficiency it can be applied to many problems. For example it can be used as a glue among components of your infrastructure. Also due to heavy development you don’t just have a runtime environment, you have a whole ecosystem with tools that apply to a wide variety of problems.

Conclusion

Node.js is already a part of the tools that I use on a daily basis. However it should be used wise and make sure that it fits your project’s nature.
It is really challenging to deal with the callback hell, but in exchange you get a pretty promising and fast growing ecosystem.

4 thoughts on “Why I use Node.js

  1. True. But there are drawbacks too: less scalable than more mature solutions (vert.x is my favorite) and many node modules are crappy at best, sometimes taking the stability of your app down.

    For larger projects, JavaScript without some framework heavily supported by tools, doing something similar to compile time code validation, is a bad fit. True, you can run it instantly, but I at least prefer some tool to tell me that I need an additional set of braces to avoid incorrect interpretation, that in some place I assign values of incompatible types and the like. The time spent debugging such issues adds up, and is better spent elsewhere.

    1. Vert.x is great I can’t wait for a new project to sink my teeth into it.
      Writing node.js code is a real challenge not only because you deal with callbacks but also because of javascripts really different nature. Coming from a Java background using heavily interfaces, design patterns it was really strange in the beginning.
      However I think that my node.js experience (and due it’s different needs) enhanced my approach on problems.

  2. I am a complete newbie in web development and I’d like to get started. I’ve read about Node but also about Meteor, built on top of Node, as being easier still. Do you have any opinions on Meteor?

Leave a reply to Emmanouil Gkatziouras Cancel reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.