The Node.js/NPM community is going through a lot of issues and seems, unfortunately, immature. People also tends to choose Node.js for the wrong reasons. Mainly they want to have only one language for everything: Database/Frontend/Backend/Deployment... JS itself as a bare language is a far from perfect. A good point to start will be to just compare a sample selenium test in ruby or python and node.js. The Ruby/Python one is clear and expressive whereas the node.js one is just a callback nightmare. Finally, node.js single thread blocking nature means you have to deal with threads/forks anyway for any serious application.
I wondered this too, so I went out and implemented a large project in Node (Haraka - an SMTP Server). It turned out to be such a success that Craigslist dumped Postfix for it (an SMTP server written in C), and managed to get rid of more than half of their servers due to Haraka being faster.
We just added another example company doing the same - bounce.io - they are seeing similar gains.
Yes Node has problems like any language does, but the gains are real.
I think calling a technology overrated by pointing out a sample selenium test is pointless.
Like any technology, there are some things that node.js is good at, and somethings not good at. The callback-hell is something that will eventually be ironed out in ES6 and as a language, that'd be something that any dev will find non-appealing about javascript.
Callback hell has been my biggest stumbling block with node but there are libraries such as asynch and Q which have provided me with adequate solutions. Also since were talking about things to be ironed out, I hope they make it easier to run node behind Apache or some other webserver thats tried and true.. why abandon all that progress?
The Node.js/NPM community is going through a lot of issues and seems, unfortunately, immature. People also tends to choose Node.js for the wrong reasons. Mainly they want to have only one language for everything: Database/Frontend/Backend/Deployment... JS itself as a bare language is a far from perfect. A good point to start will be to just compare a sample selenium test in ruby or python and node.js. The Ruby/Python one is clear and expressive whereas the node.js one is just a callback nightmare. Finally, node.js single thread blocking nature means you have to deal with threads/forks anyway for any serious application.