Real Programmers Prefer ØMQ

created: 1280789540|%e %B %Y, %H:%M
TAGS: Ømq

Forgive me, for it's been a year since my last blog posting. I'm not sure I can Hail Mary my way out of this one but I'll try. During the last year I worked six months on and off in a small Polish town called Torun, helping the Wikidot.com team turn their business into something that would survive a long time. A few beers and Polish language lessons later… OK, "few" is strictly relative, I'm now working on and off in another small central European town, inflicting damage on another innocent project.

This is ØMQ, which has as many definitions as it has spellings. What ØMQ does is let programmers build applications that distribute easily across any number of boxes. Yes, Dorothy, I realize you thought programmers could already do this. But right now they need to glue their programs together using cat guts and puppy dog tails. ØMQ saves the kittens and puppies so they can be sent to China to make fur coats. Just kidding. They all live on a magical island off California, populated only by little old ladies.

ØMQ is kind of programmer pr0n. By this I mean that it fulfills fantasies and does it wearing really practically nothing. Admittedly not every programmer gets excited by "perfect scalability" but this software separates the men from the boys. No, I'm not going to dignify your imagination with a crowbar joke. Real programmers prefer ØMQ.

To appreciate ØMQ you have to be a veteran of some battles involving large software systems and human stupidity. One day, ØMQ will be taught in CompSci classes as the missing layer in the networking stack. It's not so much about solving horribly complex technical issues, as about solving a bunch of weaknesses in the human mind that programmers seem to have been too damn proud to admit to for ages.

  • We are thick, especially when we're distracted, tired, or overworked, which is the natural state for most of us, most of the time.
  • So, we have trouble holding complex things in our minds. They fall out, until we literally learn them by heart.
  • So, when we're asked to remember complex concepts, we get them wrong. Yet we're convinced we're doing it right.
  • So most large, complex software systems are literally filled with the consequences of stupidity and the better the developer, the more time they spend trying to fix these consequences.

ØMQ starts with this hypothesis: we're all kind of stupid, so let's take it very easy and do things simply. A simpler API, a simpler protocol, simpler abstractions. There's always going to be some unavoidable complexity. A system with a hundred pieces ain't going to be trivial. But if those hundred pieces only connect in three distinct ways, that is a great help. And if those connections all look and work just the same, no matter what's going on underneath, that's even better.

Bookmark and Share

Rate this post:

rating: 0+x

Comments: 0


Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License