Edit June 2016:
Of course, now Node.js is super awesome and totally suitable for production ;) (it has been for a while!)
I like to use nipstr.com to find nice / popular modules to use.
TypeScript and ES6 features now offer a super awesome way to build large-scale projects in a very smooth and enjoyable way (with type checking capabilities and great features (lambda, for..of loops, Sets, Maps, ...)).
Original post (May 2012):
I worked with Node.js for some months now. I will give you my opinion (version 0.6.18, May 2012).
I come from the C++ world and I really enjoy to work with Node.js:
- It gives the feeling to be fast (but I didn't benchmark).
- It has a really nice and well documented API.
- npm is a wonderful package manager.
- It's fun to code with the good parts of JavaScript.
However, it currently has one major issue: modules.
You have plenty of modules, but it's hard to pick one:
- A lot of modules have the same goal and often no one is THE reference.
- Although Node.js is stable, some modules are not well tested and it's not uncommon to come across bugs or crashes when using them.
- Many modules have not been modified for months or years (like node-inspector - 7 months): look at the github of node modules.
- Debugging tools aren't working well: I am currently unable to use v8-profiler with node-inspector for memory profiling.
As a conclusion, I think Node.js is pleasant to use and to learn, but its ecosystem is not yet suitable for whole projects.
Going with Node.js will induce time to get modules working for you and to update your source code as modules evolve.
We have to wait that Joyent feels confident enough to release Node.js in version 1.
We also have to wait (or to work) in order to finally have a stable ecosystem.
Feel free to share your experience in the comments!