<p>I've been developing a Smalltalk variant for just the fun of it and I wonder what would be a fellow stackoverflowers choice when it comes to targeting a back-end. These were my current considerations:</p>

<p>.NET, JVM: These two VM's are mainly for statically typed languages and I assume it would be quite hard to target such a dynamic language like smalltalk.</p>

<p>Python (as source code): Seems to be the simplest way. Also it would be better if I could emit Python bytecode but it's not well documented as other VM's AFAIK (Need to dig Python's source code for details!). </p>

<p>Self made interpreter: Out of the question as it's no fun :-)</p>

<p>LLVM, NekoVM, Parrot are other options I'm checking out. What would be your take on this?</p>

I would choose the JVM, but mainly because I'm familiar with it.
Objective reasons for
JVM
are: main platforms are supported, many libraries and good performance (within the choices you have given it may have the best performance).
.Net works best on Windows. If you choose it, you should test on
Mono
to be more platform-neutral.
Python
seems a good choice as well. But I think for the JVM more libraries are available.
Parrot
is in my opinion too fresh, it needs some time to mature. But an interesting alternative for the future.
The other choices are new to me, I will take a look at them.