So that .NET doesn't support multiple inheritance is OK if you can find a way to have the structure of that multiple inheritance visible within .NET (albeit with interfaces and not classes).

That .NET doesn't support generic programming is OK because your language can still support it in the compiler, even though no other language can notice or interoperate with that feature.

This is an understandable, even an acceptable, compromise within the limits of what .NET really aims to do. It doesn't match the hype, but then what from Microsoft does?

However I am still concerned that these second class concepts (ones which can be represented somehow but in a distorted way) and third class concepts (my compiler implemented it) will be devalued in the .NET world. Sure, you can do that, but the system subtly discourages you from doing it.

I am reminded of a quote from Paul Graham in [link|http://www.paulgraham.com/avg.html|Beating the Averages] that, When you're writing desktop software, there's a strong bias toward writing applications in the same language as the operating system. Similarly when writing .NET software, there is a strong bias towards writing applications in a language that dovetails with .NET's view of the universe.

Meyer's limited successes in sneaking in features that .NET doesn't understand don't comfort me. Perhaps I am just being paranoid though. (Microsoft will do that to one...)

Cheers,
Ben