In the meantime though, to me it looks increasingly like we need to go down the road of Python, XPCOM/UNO, GObject introspection, and other half measures; ....
i'm glad that people are leaning in this direction.
one issue that is bothering me with regard to java and mono:
java and mono are desirable because they make programming software easier in many ways. this is mainly a function of better abstraction mechanisms. both also rely on virtual machines, but this seems orthognal to the first point.
from my point of view having a virtual machine doesn't buy me anything and only adds software complexity, redundancy (with the normal toolchain), memory footprint overhead, and another set of compatibility headaches. it might be nice that you can run things on different platforms, but that has always been an option with free software.
the arguments in favor of virtual machines that i can think of off the top of my head include runtime optimization, runtime code creation, and restricted execution.
i am a big fan of dynamic languages like python, lisp and scheme that run on VM's so i don't have an axe to grind in this respect: i just don't see the benefit of foregoing mature tools that are already there to get to the point where we can say "it runs within about 10% of normal code" and theoretically it could run faster....
give me my high level language, with garbage collection, and the like happiness, and give me my neat-o virtual machines, but don't force me to buy one to get the other.