title: Using Python for Erlang-like things: what goes where?
body: <p>I do not yet know much about it, but I've heard that Erlang is somehow special in processing network applications; as I understand it, this comes from some early design decisions that allow it to have thousands of concurrent processes with limited overhead.</p>
  
  <p>I'm essentially a python programmer, and I've enjoyed using 0mq lately for distributed computing <a href="http://taotetek.net/2011/02/02/python-multiprocessing-with-zeromq/" rel="nofollow">like this</a>, until I came across <a href="http://www.rabbitmq.com/blog/2011/06/30/zeromq-erlang/" rel="nofollow">this article</a> criticizing <a href="http://zeromq.org/blog%3amultithreading-magic" rel="nofollow">this article</a>.</p>
  
  <p>What is it that Erlang does that is so special for networks/concurrency, and which python library, or set of libraries, attempt to replicate/replace which parts of it?  I'm having trouble understanding /how/ each of these items fit in to the distributed, networked programming picture:</p>
  
  <ul>
  <li>0mq wrappers to python</li>
  <li>stackless python</li>
  <li>Twisted Python</li>
  <li>Tornado</li>
  </ul>
  
  <p>(I understand that Celery and RabbitMQ are slightly different beasts in that they are message passing, but they mandate a queue system, which is a particular type of distributed computing.)  How do these "map on" to which functionality, and when should they be used?</p>
  
  <p>I have also reviewed the following:</p>
  
  <ul>
  <li><a href="https://stackoverflow.com/questions/5519513/erlang-like-concurrency-for-python">https://stackoverflow.com/questions/5519513/erlang-like-concurrency-for-python</a> which is 2 years old.</li>
  <li><a href="https://stackoverflow.com/questions/3423447/which-actor-model-library-framework-for-python-and-erlang-like">https://stackoverflow.com/questions/3423447/which-actor-model-library-framework-for-python-and-erlang-like</a> which assumes the actor model is secret sauce of Erlang---I do not know enough to know that this assumption is the right question.</li>
  </ul>