Bertrand Meyer provides a far better analysis than I did about multiple languages in .NET in this month’s Software Development Magazine. “Of course, the [.NET] languages involved have their own models, which may differ significantly from the .NET object model. That’s to be expected: Otherwise, they wouldn’t really be different languages, just a different syntax and minor variations on a single language theme. To a certain extent, this characterization could be applied to C# and Visual Basic .NET; one may claim that these two are, deep down, just one language, now that VB has become an OO language. But it’s definitely incorrect if we consider the entire set of .NET language players.”
He goes on to point out that “Managed C++ is very close to C#, in spite of what the default Microsoft descriptions would have you believe.” And I’m sure when Java.NET comes out it will be too.