MS Languages Diverge in Whidbey

For the past two years, convergence has been the theme in Microsoft languages. Visual Basic .NET was a significant break from VB6 and is a very similar experience to programming in C#; Managed C++ gained the use of visual forms design; everything worked inside Visual Studio .NET. The theme of Whidbey at the compiler level is that the languages are diverging -- VB.NET will have unique things (edit and continue), C# will have unique things (closures), and C++ will have unique things (deterministic finalization). As you can see, these divergences are to the service of the languages' core audience (VB.NET: programmer experience, C#: language expressiveness, C++: control and performance).

There are other things, most notably generics, that will be shared across all languages. One of things that I was very interested at the various discussions of CLR evolution is the concern that the unification necessary for interop (what I described immediately following the BoF as a concern for the BCL, but which really extends beyond that) may impede innovation in languages: it may be the case that every language can agree to the existence of an int but with concepts such as IMap\<K, V>, it's not as sure a thing.