well, .NET can be made faster by employing a more involved translator. for example, an essentially braindeded direct-JIT, would be fairly slow.
if it reworks it, say, into SSA form and handles the stack and variables partly through register allocation, then, very likely, you will get faster results.
can't say exactly what the various .NET VMs do, as I haven't looked too much into this.
for example, my compiler uses a language I call RIL (or RPNIL), which is essentially a vaguely postscript like language. now, it is a more or less stack machine model. so, I compile C to this language, and this language to machine code.
and, the spiffy trick: the RIL stack, increasingly, has less and less to do with the true (x86) stack. part of the stack is literals (only in certain situations are they actually stored on the machine stack), part is registers (look like stack, but really they are registers), and soon, part may be in variables (needed, for technical reasons, to get my x86-64 target finished).
so, it looks like a stack machine, but a lot goes on that is not seen... I chose a stack machine model because it is easy to target (and was fammiliar), but this does not mean strictly that the internals, or output, have to work this way.
and, odd as it may sound, only a very small portion of the RIL operations actually generate CPU instructions, and typically then, it is for something that happened earlier in the codestream...
yes, a few possible reasons come up...
I don't understand exactly how this differs that much from current approaches. another CPU is, another CPU.
x86 and, soon x86-64, are the most common (at least for normal computers).
yes. for PCs, a standardized GUI would work. for non-PCs, it is probably a lot harder (given the wide variety of physical interfaces).
now, a very simple and general UI, makes a usability problem on a normal computer, as often these kind of UIs end up treating the keyboard like a paper weight (for many kinds of apps, the keyboard serves its purpose well).
now, in my case, I typically do my GUIs custom via OpenGL... this gives a good deal of portability at least (stuff still works on linux, to what extent it works...).
yeah...