ZeroMQ =/= Erlang
rabbitmq.com
rabbitmq.com
So the point about Erlang bringing "Fast process creation/destruction" to the table is especially important: if you want to bootstrap an application which needs low-latency, low-overhead distributed message passing, you are better off using Erlang or something else.
Well, actually, you can have as many ZMQ_SUB sockets as you want connected to the same ZMQ_PUB endpoints, and just set each to subscribe to separate topics.
ZeroMQ is not a message queue. It's sockets++.
If you want a web interface where non-programmers can log in and interfere with your message passing, you don't want ZeroMQ. If you are writing something like X11 or a web server, though, it might be exactly what you need.
wha?
That's not what he was talking about at all, he was talking about selective message reception: when an erlang processes fetches messages from its mailbox, it can do so using a pattern and only messages matching this pattern will be retrieved. And if there is no message matching the pattern, it will just block (can be made to go through directly or with a timeout if needed) until one such message lands in the mailbox.
They apples and oranges.
Some people use both. There is Erlang binding for 0MQ.
EDIT: Apparently Google cache works. Linky: http://webcache.googleusercontent.com/search?q=cache%3Ahttp%...
So, the article focuses on 0MQ =/= SomeGenericMQ and doesn't stress the 0MQ =/= Erlang point of view.
Really, though, to me that's not the greatest part of Erlang. The great part of Erlang is more that the VM supports lightweight threading, so you can create a vast number of threads and program by message passing, and bugs can be met with micro-reboots by supervisors.
Erlang facilitates reliable, highly concurrent systems using interprocess communication, zeromq just enables the interprocess communication part.
Message passing is just part of the language and it's definitely not the most interesting one. It becomes really powerful when you combine all the interesting things together (pattern matching, message passing, lightweight processes, supervisors, gen_*, ...).
much better.