I'd love to have the freedom to use various languages for the problems they work best for but I'm not sure how this can be accomplished today.

I have had a fair amount of success using web services as the language abstraction layer and that works great... but it's slower than molasses even using localhost.

Steve Yegge has talked about this very issue and how it is helping to drive further interest of VM's. On the .NET side, the last I heard there wasn't a not ugly way of communicating between the DLR and CLR. Has that changed? How are things on the JVM front? What about allowing VM's to interoperate?

BTW, I don't have any real reason to care except that I'm a nerd with nothing better to think about. :)

+1  A: 

Communication between the CLR and DLR is actually fairly easy. DLR code can call CLR code transparently, so that's a nonissue. To call DLR code from the CLR, make an interface in C#/Nemerle/whatever and then implement that from IronPython or whatever your DLR language of choice is. Then you can use that interface to call into the DLR code no problem. It's not optimal, but it works perfectly.

I'm currently working on doing compilation of static languages (primarily Nemerle and C#) to the DLR, and that should bridge the gap completely. We'll see.

Edit: Btw, it's already very possible -- easy, in fact -- to mix CLR languages. I use C# and Nemerle regularly and I've never had a problem with anything at all.

Cody Brocious