I do agree with you that being able to share code between client and server is a poor argument. It is a rare case in my experience where anything but the most trivial JS code can be shared between client and server.
If I am building an HTTP(S) API server that is I/O heavy
(which many are), I will pick Node every time until
something else comes along to replace it.
This is exactly what I'm talking about. There were languages/frameworks that beat node already out there before Node came along. It mystifies me why people think there weren't. Again the only motivation that actually makes any kind of sense for creating Node is shared code between client and server.It isn't about using Node because it is cool or I like Javascript (which I hate BTW). It is about accomplishing my goal of an efficient HTTP API server much more quickly with Node than any of the other languages/frameworks that have come before. In my opinion, this is the niche Node does the best and if I have the choice I will choose it until another language/framework comes along to beat it.
e.g. http://twistedmatrix.com/documents/10.1.0/core/howto/threadi...
not really much boilerplate...
Node (and Javascript) is definitely missing proper support for threads which is a negative.
It gets lots of stuff done, so I'd say it's pretty well-clothed.
I guess there's something to be said for not having to learn more than one language. Probably something vulgar.
Those are minimum reqs for a language and community. They aren't differentiators. Aside from their absence being a negative indicator.
There are only a few high-quality-working-and-well-documented modules.
Those are excellent reasons to use javascript to power your web applications client side as opposed to say Flash or ActiveX.
However, those have absolutely no bearing on writing your server code in JS.
The only reason to run JS on your server is so you can write the server side and client side in the same language. That's a debatable reason for running JS on your server.
Node incredible scalability around IO is also provided by a host of other not rushed and left to rot languages. Erlang, Go, C++, even Java has libraries for it.
When it comes to server side you can make a pretty good argument that the "emperor has no clothes".