The C# team posts answers to common questions and describes new language features
So, the entryway to my house has eight light switches along the wall. Two of them control the porch lights, and another two work the same entryway light (despite the switches being only a couple of feet apart). I haven’t the foggiest idea what the rest of the switches do. I’ve been scared to try them out, actually. (I worry that one day I’ll accidentally throw one of them and find out later that my couch is missing or something odd like that.)
However, I am pleased to announce that we’ve turned on quite a different switch here on the Managed Languages team, with very successful results! As many of you know, we’ve been diligently working on a replacement for our VB & C# compilers (and certain IDE pieces that leverage them) which is code-named “Roslyn.” Roslyn introduces a far more open model for compilation, which will allow developers to reach inside the compiler itself and see the world (or, at least, solutions and projects) as it does; this, in turn, will lead to far richer IDE and diagnostics being able to be developed at considerably reduced effort and cost.
And now, we’ve turned on The Big Switch in the Visual Studio organization and turned on Roslyn!
The Big Leap Forward
Specifically, I’m pleased to announce that everyone in the Visual Studio organization is using Roslyn in their daily work now. In fact, the daily builds of VS are now compiled using Roslyn, all as part of a process that we refer to in the biz as “dogfooding.”
Now, this change wasn’t trivial and, as with the mysterious light switches in my entryway, there was a lot of caution involved before we got to the point where Anders ceremoniously turned on the switch and enabled Roslyn for the division. Although we are part of the Visual Studio org, in many ways the rest of the VS org is like a customer to us as well, and so we had to be really careful not to derail any teams in our enthusiasm to reach this milestone. (For some reason, the other teams feel that their work is important, too… go figure.)
So, earlier this year, we engaged the toughest bunch of critics we could find (that is, the other VS test teams), and asked them to do several weeks of hard-core tests against their code – essentially, every test that they already had plus new ones specifically designed for this situation. At the same time, we ran and re-ran all sorts of performance tests to ensure that we wouldn’t be slowing down either developers or our build lab. We did a walking tour of the rest of the org and got them educated on the changes that Roslyn would bring. We compiled & assessed over 60,000 projects, large and small, both internal and external to Microsoft (including flagship Microsoft products). We fixed whatever blocking bugs we found as a result of all of that and then, at the end of October, we switched the entire division to using Roslyn bits. I’m happy to say that all that prep work set up us well – since The Big Switch, we’ve run into no major issues!
So… you’re done?
Not quite. “Dogfooding” is a prelude to being done, but there’s still a bit of polish to put on before the new code is truly complete. Nevertheless, we are at the state where Roslyn is highly usable for daily work. It’s a huge milestone and essentially says that we’ve turned the corner. There’s no going back now!
So, then, when can we see it?
As you may know, our last generally-available preview for Roslyn was September 2012. No, that year is not a typo. Yeah, we do feel a bit embarrassed about that. Yes, we’ve been a little quiet. No, there was nothing wrong going on here, things were actually going extremely well, it’s just that we’ve just been really heads’ down and focused on The Big Switch and…
Oh, to heck with the excuses, and let me just tell you what we’re doing.
Now, of course, I can’t ever reveal shipping plans in a casual blog post like this, because I want to keep my job that’s someone else’s story to tell. However, if you can keep a secret, I’ll tell you this much: we’re now actively working through the details on starting up regular previews again. The code is in a really nice state these days, and we can hardly wait to show you what we’ve been up to as we’ve been solidifying Roslyn! (But don’t tell anyone that I told you. This is just between you and me.)
We wish you all the best for the New Year – 2014 is going to be an exciting year for us all vis-à-vis Roslyn. We’re delighted to have you along with us on the journey!
‘Til next time,
Wow, that's nice! I can't wait! Happy new year for you too.
Really looking forward to Roslyn's release and the interesting VS tooling opportunities it will present.
What does this change mean for C++ developers and the future story of VC++?
Hi, Daniel -- this change (and Roslyn in general) has no impact on C++ development or its mission. The changes brought in by Roslyn will only affect VB and C# development.
It is not cool until it supports F#, the only cool language on your platform.
Whatever you make, whatever you think, this is your (only) asset leading the way.
Awesome to get an update from you guys. Congrats on the great work.
I know you can't announce anything concrete, but are we talking 3 months, 6 months, or a year+ until RTM?
I was also really excited to see the writeups about Mads' talk on C# 6.0. You guys should make a blog post here talking about the features you're looking at and get some Q/A going.
@cool: I love F#, too -- it's really fun to code in, and a very strong language, particularly around data. I've taken a couple of old code examples I had lying around and did a "true" conversion (not just a port, but a re-write to the intent of the code as functional and not imperative)-- once I got over the learning curve (well, in honesty, I've still got a lot to learn), it was cool to see how elegant and compact the code ended up being. I'm glad that it's part of my team's charter as well.
@MgSm88: Sorry, I can't be more specific yet on dates -- not even a hint, I regret. I can at least promise more interaction on the various blogs/forums/etc. now, as that's an area that's near and dear to my heart. (Although probably not over the holidays, I hasten to add-- we need a rest after all of that charging ahead! :-))
Looking forward to the preview,
I wrote a chapter in my book "Windows for PowerShell Developers", integrating Microsoft Roslyn.
I would love to get on a "sneak preview list" if at all possible.
Awesome update! It may be too much of a teaser though. Here's to hoping for a Rosyln Christmas surprise or a New Year party gift!
Would like to see F# in the mix too.
I, for one, am very excited about this. There are going to be so many interesting applications of roslyn, most of which haven't even been thought of yet.
Long overdue but very welcome news. Now, how about C++ as a service?
Fantastic work guys and congrats to the team. Totally looking forward to Roslyn's release.
OMG!Change has finally come to .Net!
DAMN IT RELEASE _SOMETHING_ _ANYTHING THAT WORKS WITH VS2013_ FAST PLEEEEEEEEEEEASE YOU'RE SOOOOOOOOOOOOOO DAMN LATE
@Daniel: Considering the largest of part Visual Studio is written in C#, Roslyn means a better development environment for VC++ as well in the future.
'Roslyn' itself is just a compiler, so we're talking about 10-20 megs of binaries. What you think about publishing some 'nightly builds'? (since you say "Roslyn is highly usable") We don't care so much how 'polished' it is, but we're very interesting in learning how Roslyn can be used. Additionally it gives you wider "testing base". I think now is very good time to share results - we have Christmas leave and can play with Roslyn a bit.