"I have a mind like a steel... uh... thingy." Patrick Logan's weblog.

Search This Blog


Thursday, May 01, 2008

Huh?: "The fact that it runs on its own interpreter, bad."

What is this obsession with some virtual machine being the one, true byte code? The Java Virtual Machine, the CLR, Parrot, whatever. Give it up.

I agree with Steve Vinoski...

The fact that it runs on its own interpreter, good; otherwise, the reliability wouldn’t be there.
We need to get over our thinking about "One VM to bring them all and in the darkness bind them". Instead we should be focused on improving interprocess communication among various languages. This can be done with HTTP and XMPP. And we should expecially be focused on reliability, deployment, starting and stopping locally or remotely, etc. XMPP's "presence" provides Erlang-process-like linking of a sort as well.

With Erlang's JInterface for Java then a Java process can look like an Erlang process (distributed or remote). Two or more Java processes can use JInterface to communicate and "link" reliably and Erlang virtual machines and libraries, save this one single .jar, do not have to be anywhere in sight.

To obsess about a single VM is to remain stuck at about 1980 and UCSD Pascal's p-code. It just should not matter today, and certainly not tomorrow. The forest is now much more important than any given tree.

Pay attention to the new JVM from IBM in support of their lightweight, fast-start, single-purpose process philosophy embodied in Project Zero. It's not intended to be a big honkin' run everything forever virtual machine. It will support JVM languages and the more the merrier in the sense that such a JVM will enable lightweight pieces to be stiched together dynamically. However the intention is to perform some interprocess communication and then get out of the way. Exactly the right approach for any virtual machine.

Jini clearly is *the* most important thing about Java, ever. But it's lost. Gone. Buh-bye. Pity.


Mamut said...

XMPP or UBF? http://www.sics.se/~joe/ubf/site/home.html

That is the question.

Patrick Logan said...

"XMPP or UBF?"

I don't know anything about UBF and I could be biased, but at this point I think the balance has tipped way over to XMPP's favor no matter how good UBF is.

illume said...

:x86 seems to be the VM that is winning the most :)

GO X86!!!

akuhn said...

The only true way is anway only that it runs on ALL virtual machines!

How? With PyPy ... write once and generate your interpreter for all VMs out there, including C! And the best thing, GC or JIT are PyPy plugin, no need to write them yourself.


James Justin Harrell said...

The only argument you made that I can find against sharing VMs is that people should be focusing on other things. But the main reason for sharing VMs is to allow people to focus on other things, instead of focusing on creating yet another VM.

You write as if you think creating an entirely new VM from scratch would be easier than targeting a common VM. Is that really what you think?

It's one thing for languages that already have a good VM, like Python, but for languages with a bad VM or for new future languages, using a common VM can be a huge time saver, allowing the language designers/implementers to devote more attention elsewhere.

BTW, you left out LLVM.

Blog Archive

About Me

Portland, Oregon, United States
I'm usually writing from my favorite location on the planet, the pacific northwest of the u.s. I write for myself only and unless otherwise specified my posts here should not be taken as representing an official position of my employer. Contact me at my gee mail account, username patrickdlogan.