>>222
移植性は昔から言われてることだけど、コンパイラも作るのが楽だし、中間言語は都合の良い命令セットが定義できるからサイズも小さくなる。

何より、コンパイラの改良とVMの改良を分離出来るので、割と柔軟に改良できる。
使う言語のバージョンと、VMのバージョンに厳密な区切りが要らないと言うか。
最低限このバージョンが要る、ぐらいは必要だけど。

新しい言語のバージョンを使って、古いVMで動かすって事が不可能ではなくなる感じかな。
逆も然りで、古いバージョンの頃に書いたものを、最新のVMで動かすことも不可能じゃない。こっちは割とよくある。

ネイティブバイナリ吐いてると、そのへんキツイと思う。特に標準ライブラリがその言語で実装されてるGoとか。