Erlang on LLVM? or: Outsource your JIT!

Has anyone been working on using [LLVM][1] to do just-in-time code generation for the [Erlang][2] virtual machine?

Depending on the design and structure of the Erlang virtual machine, it doesn’t seem like it would be all that tough a project. And it could provide a nice performance boost for those projects that are starting to use Erlang like [CouchDB][3] and [ejabberd][4].

For an example of what I’m talking about, there’s a project called [VMKit][5] that has implemented the Java and .NET virtual machines atop LLVM with reasonable performance. Essentially, if you have a virtual machine, rather than skipping either just-in-time or static code generation entirely, or trying to do it all yourself for some specific platform on which you want to run, take a look at what you can do with LLVM and see if you can leverage its code generation instead.

[1]: http://llvm.org/
[2]: http://erlang.org/
[3]: http://couchdb.org/
[4]: http://www.ejabberd.im/
[5]: http://www.ejabberd.im/

Why is Twitter not just Jabber?

Twitter is a way to post a short message to a wide group of subscribers, and to receive messages posted by a wide group of subscribers.

That’s instant messaging. There’s already a standard protocol for it: Jabber (XMPP).

Why not just use it? Why invent a new protocol?!

Actually, Twitter already does have experimental XMPP access to the full timeline — rather than to individual timelines, or to your friends’ timelines — and you can use it to build things like TweetMaps and TweetClouds and Quotably and…

But Twitter should really be built entirely around XMPP. It shouldn’t be a web app at all, though it could certainly have a web front-end. In case you doubt me, here’s an example Twitter-like service implemented by Process One atop the ejabberd XMPP application server.