This is not going to be a Node bashing post. Instead I want to reflect on some of the struggles I had building a new version of a CLI (Command Line Utility) that I wrote in Python over to Node. For reasons why I wanted to do this, please read my previous post Creating a Command Line Utility With node.js.
First, let me start by saying that I REALLY think that node is some very cool technology. I expecially like NPM, and to be honest that is what really attracted me to re-writing my utility to begin with. I thought it would be great if all a person would need to do is install NPM on their computer and enter;
>npm install umodules
Alas, it was not quite that simple. I must admit that a good portion of my failure in creating this in Node is my ignorance of the language. For the most part it was actually going well until I had to incorporate GIT pulling into my tool.
You see, because Node is completely Asynchronous, I had a hard time figuring out how to pull down files Synchronously, so that I could continue on to the next step. I tried many, many different things, but in the end, I gave up.
The entire time I was trying to get this to work, I kept saying to myself, "remember how easy this was to do in Python?".
I have seen a lot of different tools and utilities built with Node, and I have looked at some of the code. In many cases, a lot of effort was made to "get around" the internal loop that Node comes with. To me, that's a sign that you should be using something else.
Like I said, I am not going to do any Node bashing here, it was just not the right language for the what I was trying to do.
I like Node, it's good at what it does, but I really don't think it can or should be used for everything.