title: What is the point/purpose of Ruby EventMachine, Python Twisted, or JavaScript Node.js?
body: <p>I don't understand what problem these frameworks solve.  Are they replacements for a HTTP server like Apache HTTPD, Tomcat, Mongrel, etc?  Or are they more?  Why might I use them... some real world examples?  I've seen endless examples of chat rooms and broadcast services, but don't see how this is any different than, for instance, setting up a Java program to open sockets and dispatch a thread for each request.</p>
  
  <p>I think I understand the non-blocking I/O, but I don't understand how that is any different than a multi-threaded web server.  For Node.js I read that it only has a single thread, and that this may be more efficient than juggling multiple threads, but is that the only difference between these frameworks and a traditional web server?</p>