Friday, October 03, 2008

Erlang VM : now hosting multiple languages

In an earlier post, I had wondered why the Erlang virtual machine does not host a more diversified set of languages ..

"BEAM provides an ecosystem that offers phenomenal scalability with concurrent processes and distributed programming, which is really difficult (if not impossible) to replicate in any other virtual machine being worked upon today. After all, it is much easier to dress up Erlang with a nicer syntax than implementing the guarantees of reliability and extreme concurrency in any of your favorite languages' runtime."

Then I had blogged about Reia, the Python/Ruby like scripting language on BEAM.

A few days back, Robert Virding released a stable version of LFE - Lisp Flavored Erlang, a concurrent Lisp based on the features and limitations of the Erlang VM. Unlike Lisp it doesn't have global data or mutating operations. Instead it has the goodness of Lisp macros, sexprs, code-as-data together with the Erlang power of pattern matching and binary comprehensions. And the best part is that LFE hosts seamlessly with vanilla Erlang/OTP.

Along with Erlang being used to develop middleware applications, we are seeing increased use of Erlang VM, hosting more and more language variants. This is a clear indication that the Erlang ecosystem is growing. As Ted Leung has rightly observed in his post on VMs for everybody, we are going to see not only flourishing new virtual machines, but also lots of languages atop existing virtual machines.

Real good time to be a hacker .. a pity though only a few lucky ones get paid for hacking ..


Anonymous said...

The first experiments with other languages on the beam was the 'haskerl' work I think. Have a look here:

Pattrick said...

This "beam" related posting has been very useful for me.. Good write-up.
Keep them coming.

Unknown said...

I believe it's a great idea. I would love to see a Scala or even C# to BEAM compiler, it would be a killer technology.

If well implemented, it might even make the Erlang syntax a less preferable choice.

I remember asking Joe Armstrong himself this question on last Erlang Exchange conference, and he sounded surprisingly elusive. He pointed at the fact that, at present, there is no documentation on the BEAM bytecode and the only way is reverse engineer compiled Erland code.