Node is really good, until it's not.<p>I've actually spent a lot of time with Node since the company I work for was an early adopter. This all based on opinion but, my general feeling about Node is that the underlying concept is great but, Javascript is an awful language to do it all in. The lack of real support for continuations (and/or coroutines) means there is no escape from the callback hell and tracking down errors can be a real nightmare. Ultimately for simple projects Node works fine but reach a point where your application becomes at all complex and things can get hairy real fast (of course this statement could be made about client side Javascript as well).<p>I say this not to discourage anyone from trying Node because for many projects Node may be just what you need but, there are some downsides one should probably keep in mind.
Although the ideas and technology behind node.js aren't entirely new, the fusion of a well known client side language like Javascript and a robust server-side event based architecture really makes node.js great.<p>I really enjoyed the article because it approached node.js as it should have, as the new way of doing things on the server. I see node.js becoming as ubiquitous as ruby/python/perl are on the server (maybe even for desktop applications).<p>Even if node.js doesn't become as big as I think it will, I feel that the shift is has helped cause is a positive one for the server space and we will all benefit from it.
If you're into Node.js and Redis we (Voxer) are actually hiring engineers. We're building a Walkie Talkie for iPhone and Android. In more technical terms Voxer is a low latency messaging system for voice, images, and text.
We have an iOS client in the App Store, and an Android version is in the works. We've had explosive growth in the last couple of weeks and are now in top 25 in a bunch of app stores and we are looking for someone to help us develop the server side components and make the system scale.<p>Email me gustaf@voxer.com if you want to know more and I'll connect you with the right person.<p>Our servers are built out of Node.js, CouchDB, and Redis. If you are
excited about node, server-side JavaScript, and new databases, this is
an opportunity to work on this technology full-time.
Not too long ago I've written some simple CAPTCHA service with Node.js, node-redis and node-canvas. It was a simple application that generated a word from a specific grammar, saved it to Redis for further reference and returned a PNG.<p>While being ridiculously fast it leaked memory like crazy. So I've found that there were almost no debugging tools (except for old good gdb) to find out what was going on. (I've heard that there are some changes like `node debug`, though. Should dig the archives and try code with latest Node version.)<p>I believe this was an inherent consequence of JavaScript and V8 being tailored to short-lifetime (milliseconds of DOM operations, then lazy waiting for events to fire) applications with low amount of events (user in-browser activity).
>We're still a long way from a 1.0 release. Version 0.4 arrived just last month.<p>If memory serves, 1.0 is not so far way... half a year? When node hits 1.0 and there is a perception of API stability, third-party development will likely explode.
Node.js is great stuff. It's not new (as far as concepts used), but really nice to work with. Javascript tools and runtimes are growing up very fast; it'll probably go on to surpass Erlang for this purpose if the libs are stable enough. Node.js was the killer framework for JS anyway.
It seems like event based programming would be really cumbersome in comparison to having lightweight threads ala Erlang. Perhaps Javascript needs lightweight threads?