Hacker News new | past | comments | ask | show | jobs | submit login

> So legitimate question, is the CLR better than the JVM at cross language support and if so what makes it better?

Yes in the early days, because JVM was initially designed just for Java and many bytecodes are directly related to Java semantics.

Meaning any language that targets the JVM has to adapt their semantics to Java semantics at the bytecode level, hence the tricks mapping closures to anonymous classes as one example from many.

This got better with the introduction of new bytecodes in Java 7 and the upcoming Java 8, but it is still a Java VM at heart.

The CLR was designed as language agnostic, meaning its design had to support a good implementation of VB, C# and C++ on day one, alongside other languages from Microsoft partners like Eiffel and COBOL as two possible examples.

There is inclusive a .NET ABI for interoperability between languages, CLS (Common Language Specification).

So the bytecode is much more generic and more low level than the JVM bytecode is.

Then thanks to the work done on IronPython and IronRuby, it got the DLR part with allows for better performance of dynamic languages implementations. Since initially CLR was mostly targeted for strong typed languages.

Nowadays both platforms are quite similar in terms of language support.




Consider applying for YC's Spring batch! Applications are open till Feb 11.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: