Project Roslyn: .NET's Compiler as a Service
I spent some of this evening watching the video from Microsoft Research on their Project Roslyn, the codename for the Compiler-as-a-Service functionality they're developing for .NET vFuture.
The most interesting parts of the talk for me were:
- The C# and VB compilers are being completely re-written. The compilers have been written, for the last 10+ years in C++, and have been black boxes that take in source code and spit out IL. The Roslyn compilers are being written in managed code, in part to enable greater componentisation so that, for example, you can plug directly into the part of the compilation pipeline that most interests you.
- Looking at the APIs Roslyn exposes, it seems like products like ReSharper will become much more easily implemented. Will this introduce more competition into the refactoring tools market? Maybe. The Syntax Tree API (slides 19-23) looks very readable.
- Anders Hejlsberg is lead architect of Roslyn.
- A consideration is to release an open-source version of Roslyn to enable experimentation with your own new language features. (There will be no support for extending or modifying the parser through the compiler APIs).
- The kind of refactorings Roslyn will enable go way beyond the existing Rename Method and Extract Interface. Roslyn can enable refactorings that modify your code to, e.g., increase program security, or increase performance. These are things that would otherwise have to be designed into the program from the beginning.
There's also some interesting stuff on how people use refactoring tools.