Experimenting with Node.js
While I think it's great that more and more developers are being exposed to building network applications using async I/O (which I guess is "evented" now) via Node.js, I think it's worthwhile to point out that the state of the art has moved well beyond these kind of callback frameworks.  The reason is simple: it sucks programming in callback patterns on serious, large projects.  You end up with lots of routines that are 6 or 7 callback chained together--and don't forget to attach error callbacks as well at each point.<p>In the Python world, for example, eventlet, gevent, and diesel (disclosure: my project) all use coroutines to achieve very high performance asynchronous I/O that's still written in a "synchronous" style.  And before that, CCP games has been using stackless python to do coroutine-based networking for the servers behind the very popular MMORPG eve online  (<a href="http://www.tentonhammer.com/node/10044" rel="nofollow">http://www.tentonhammer.com/node/10044</a>).<p>Even slicker, in languages like Erlang and Haskell (via forkIO + the select/epoll I/O manager), support for asynchronous networking using "blocking-style" code is a fundamental language/compiler/vm feature.  When you write <i>any</i> code in these languages, you're transparently taking advantage of the same scaling characteristics node.js and its ilk provide.<p>So, I'd humbly suggest to anyone getting serious about doing this kind of programming that they investigate some of these systems (which are usually built by weary callback-style async I/O veterans) and leapfrog the rest of their peers.  Consider Node.js a gateway drug.<p>Linkage:<p><a href="http://eventlet.net/" rel="nofollow">http://eventlet.net/</a>
<a href="http://github.org/jamwt/diesel" rel="nofollow">http://github.org/jamwt/diesel</a>
<a href="http://en.wikipedia.org/wiki/Asynchronous_I/O#Light-weight_processes_or_threads" rel="nofollow">http://en.wikipedia.org/wiki/Asynchronous_I/O#Light-weight_p...</a>
<a href="http://www.galois.com/~dons/slides/a-scalable-io-manager-for-ghc.pdf" rel="nofollow">http://www.galois.com/~dons/slides/a-scalable-io-manager-for...</a>