[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: .NET CLR? was no subject

> Date: Wed, 06 Mar 2002 11:10:39 -0500
> From: Ken Anderson <kanderson@bbn.com>
> T1:  Multilanguage support through the Common Language Runtime (CLR).
> This paper:
> http://research.microsoft.com/~emeijer/Papers/MondrianDDJ.pdf about the 
> functional language Mondrian shows a nice example where a C# program 
> invokes an iterator which is really a Mondrian infinite list.  So, i can 
> imagine using Mondrian to do parsing for a C# program - Cool!
> However, http://www.javalobby.org/clr.html suggests that a language, say L, 
> becomes L#, a hybrid langauge, with C# warts or performance 
> limitations.  The article even quotes David Simmons about Smallscript.

Eric Kidd mentioned the case of Eiffel.  My understanding is that even
though the Eiffel people managed to create a .NET version of Eiffel with MI
and DBC, they had to go through some pretty major hoops to do so.  It
appears that the "common type system" really means "common type system for
a language sufficiently similar to C#".  Jesse Liberty, in his "Programming
C#" book, states that he'd rather have his teeth drilled than program in
managed C++ (I think that's a quote).  That's presumably because managed
C++ removes a lot of the features of C++ like MI.

> So the questions are:  Is CLR a good thing from a language implementation 
> point of view, ie, are you better off than implementing a language in Java, 
> say?  From a programmers point of view, does programming in multiple 
> languages with a common runtime help?  Would you program in multiple languages?

I would absolutely program in multiple languages if it was feasible,
sufficiently transparent and efficient.  I think that .NET is a first
tentative step in the right direction, but it hasn't solved the problem by
any stretch of the imagination.  When I can write low-level code that needs
to be maximally efficient in C++, routine infrastructure code in a java or
ML dialect, and script the system in python or scheme, and all without
paying a huge runtime cost, I'll be one happy programmer.  I don't see this
happening for some time yet.