Looking at .Net ECMA documents, I understand now how much .Net approach is different from Sun JVM. While Java started directly with high level features and dropped most of C oddities, .Net still have them all ! In particular, different float and integer sizes, pointer manipulation, different calling conventions and more. That makes the Metadatas particularly rich and difficult to implement. The goal of Microsoft is clear here : try to keep as much backward compatibility as possible. While .Net was introduced as a brand new technology that was bringing a new framework, it looks like they couldn't get rid of which is now almost the past of programming. That might help speed up things a lot but that won't help the language designer to target .Net. But still, the merits of .Net are to bring a clear - although uncomplete - answer to multiple language interactions, while Sun JVM was mainly designed for Java.