Cook Computing

The .NET Cost : Who Pays?

June 18, 2002 Written by Charles Cook

Software Development Magazine has the final installment of Bertrand Meyer's series on multi-language development under .NET. This article focuses on CLS compliancy.

Meyer discusses some CLS rules which apparently have caused problems when making Eiffel CLS-compliant: method overloading, prohibition of static methods in interfaces, requiring constructors to call base class constructors, and prohibiting a constructor being called more than once (to reinitialize an object). I expect different languages will have problems with a different subset of CLS rules.

I'm still not clear in my mind as to how feasible it is to implement any other language on top of the CLR (ignoring CLS issues). Support for a particular object model seems to be baked into the CLR (for example MI is not supported, covariance is not supported, and overloading is supported by the CLR). Of course you can implement anything you want using IL but are there costs to this such losing verifiability which I believe to be very important for producing reliable code - Meyer suggests that untyped languages can never be made verifiable. I need to read up some more on these topics (for example, could the CLR have been designed to support a wider range of languages; what does verifiability really mean and is it only important for downloadable code; etc, etc).