I've been traveling for the last week or so, first to Microsoft Research in Cambridge, England and then to OOPSLA in Montreal.
We have top-notch languages researchers in MSR Cambridge, and this was a good trip to build a deeper relationship with them. Our Redmond contingent consisted of me, Anders Hejlsberg (C#), Mads Torgersen (C#), Paul Vick (VB) and Jim Hugunin (IronPython and Dynamic Language Runtime or DLR). I won't try to list all of the MSR folks we worked with, but suffice to say it was mainly people from the Programming Principles and Tools, and Machine Learning and Perception groups.
We have had some good success in technology transfer from research to product development, including the work that Don Syme (bio ) and Andrew Kennedy did on generics. They did early design and prototyping work for C# and .NET as a research project and continued to be deeply involved after we transitioned this work to product development. .NET chose a "deep" to generics, in which generic types are represented in the runtime type system. This has been critical for later work, including the LINQ work we will release soon as part of VS 2008 and .NET Fx 3.5. Don and Andrew deserve credit for helping us make a good choice on this for .NET 2.0. I expect we will continue to deliver a lot of value on this foundation, value that would be difficult or impossible to deliver with a shallower approach to generics.
In a related note, we recently announced our intention to productize the F# project that Don leads, and this was obviously one of many topics that we covered during our trip.
I'm excited about our collaboration with MSR. Languages affect not just the way we tell our computers what to do, but also how we think about problems and communicate with our fellow developers. Working with MSR on languages is one of the things we do to help us deliver a great portfolio of languages, both now and for future versions.