I can understand the benefits of Java running on a JVM.  Portability.  Nice simple reason.  But I have always been puzzled as to why Microsoft brought out their own version of a JVM - .NET.  C# is supposed to be a fine language (haven't used myself) but could Microsoft have launched product to use native.  ie to generate an exe?My colleague is learning F#.  The reason it has to be a language which runs on .NET is because the Microsoft Lync API which will be used is only available on .NET.  ie there is no C API for Lync.A cynical view may be that the reason is vendor lockin.  F# will only run on a Microsoft platform (or C# for that matter) and so program is locked in.  But maybe I am missing some other benefit of a VM platform?
What is the advantage of a programmers VM apart from portability
.net;virtual machine;jvm