For the last four years I’ve been a part of a research team exploring extensions to the C# language. The effort focussed on adding features that improved the reliability, performance and overall correctness of the language. Like any good research project we had some features that were incredibly successful, some which were so-so and others that … well … they failed spectacularly!
The project was amazing to work on but like all good things eventually it must come to an end. Research is great fun but a part of me always missed being a part of a shipping product: engaging with customers, the joys (and horrors) of shipping code, etc …
As such I recently decided to accept a position back on C# Language team. Besides normal language work a part of my job will be trying to integrate some of the goodness that came out of our research back into the language.
I do want to emphasize trying above. Certainly not all of our work, or even most of it, will make it into the shipping language. There were plenty of successful features specific to our projects that just don’t make sense in the general context of C#. Even the features I hope to bring back will inevitably need to change a bit to be ship ready.
For the moment though I’m heads down with the rest of the team trying to get Roslyn and Visual Studio 2015 out the door. In the near future the design for C# 7.0 will begin and I will begin working on prototyping these features.
That does raise the question though: what were we working on in research?
With the exception of the OOPSLA paper I’ve been mostly silent since I joined the research team. The need to be quiet about your work is the big downside to research (especially for chatty people like me). But now the research is concluded and I’ll be able to once again blog about my work including most of what I did over the last four years.
Even though I’m incredibly excited to be rejoining the Managed Languages team I will sorely miss my old team. My language team was a part of a larger operating system research effort that had shared goals around reliability, performance and correct by construction. The overall team had a level of rigour, drive and dedication to quality that I’ve never experienced before (but desparately hope to experience again). I will definitely miss the work and the people involved in it.